V Mon, Oct 10, 2022 at 04:31:31PM +0000, Mattia Verga via devel napsal(a): > Il 10/10/22 15:46, Petr Pisar ha scritto: > > I'm now facing a build failure on EPEL, which I can't figure out: > >> /usr/bin/ld: lilxml.o (symbol from plugin): undefined reference to > >> symbol 'xmlMalloc@@LIBXML2_2.4.30' > >> /usr/bin/ld: /usr/lib64/libxml2.so.2: error adding symbols: DSO missing > >> from command line > >> > > That says that lilxml.o object file (found in a static liblilxml.a library) > > refers to an xmlMalloc symbol. But no library (the -l options) passed to the > > linker command: > > > > gcc -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -L/usr/lib -L/opt/X11/lib -L../../libastro -L../../libip -L../../liblilxml -o xephem aavso.o annotmenu.o broadcast.o calmenu.o closemenu.o compiler.o coordsmenu.o datamenu.o db.o dbmenu.o earthmap.o earthmenu.o fallbacks.o favmenu.o formats.o fsmenu.o gallerymenu.o glance.o gsc.o gscnet.o helpmenu.o homeio.o hznmenu.o indimenu.o imregmenu.o jpeg2pm.o jupmenu.o listmenu.o mainmenu.o marsmenu.o marsmmenu.o moonmenu.o moviemenu.o msgmenu.o netmenu.o objmenu.o obslog.o patchlevel.o plot_aux.o plotmenu.o preferences.o progress.o ps.o query.o rotated.o satmenu.o saveres.o scope.o sites.o skybinary.o skyeyep.o skyfifos.o skyfiltmenu.o skyfits.o skyhist.o skyip.o skylist.o skytoolbar.o skyviewmenu.o solsysmenu.o splash.o srchmenu.o sunmenu.o time.o tips.o trailmenu.o uranusmenu.o ucac.o usno.o versionmenu.o webdbmenu.o xe2.o xe3.o xephem.o xmisc.o -lXm -lXt -lXext -lXmu -lX11 -lastro -lip -llilxml -ljpeg -lpng -lz -lm -lssl > > > > actually defines that symbol. Thus the linker reported an error. > > > > For a user's convenience, the linker searched system libraries > > and found /usr/lib64/libxml2.so.2 to be defining the system. > > > > Hence a solution is patch a xephem build script in order to add -lxml2 to the > > linker flags used when linking xephem executable. You should report this bug > > to xephem upstream. > > > > -- Petr > > Thanks! > > Still, I'm surprised I hit this only in EPEL, while on Fedora everything > was built fine. > I looked at the sources. xmlMalloc() function is declared in liblilxml/lilxml.h: /* install alternatives to malloc/realloc/free */ extern void xmlMalloc (void *(*newmalloc)(size_t size), void *(*newrealloc)(void *ptr, size_t size), void (*newfree)(void *ptr)); and defined in liblilxml/lilxml.c: /* install new version of malloc/realloc/free. * N.B. don't call after first use of any other lilxml function */ void xmlMalloc (void *(*newmalloc)(size_t size), void *(*newrealloc)(void *ptr, size_t size), void (*newfree)(void *ptr)) { mymalloc = newmalloc; myrealloc = newrealloc; myfree = newfree; } There is no other place where the function is called or referred. Because the function is defined in lilxml.c which is built into liblilxml.a and then linked to xephem executable, xephem should not link to libxml2. It has its own xmlMalloc() definition. Question why EPEL9 reports that error I cannot answer. Maybe some bug in gcc or binutils. -- Petr
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue