New: quota-4.01 fails to build statically
https://bugs.busybox.net/show_bug.cgi?id=7574
Summary: quota-4.01 fails to build statically
Product: buildroot
Version: 2014.08
Platform: PC
OS/Version: Linux
Status: NEW
Severity: minor
Priority: P5
Component: Other
AssignedTo: unassigned at buildroot.uclibc.org
ReportedBy: abrodkin at synopsys.com
CC: buildroot at uclibc.org,
thomas.petazzoni at free-electrons.com, abrodkin at synopsys.com
Estimated Hours: 0.0
--->---
.../arm-buildroot-linux-uclibcgnueabi-gcc -static -lintl quotastats.o common.o
pot.o -o quotastats
.../arm-buildroot-linux-uclibcgnueabi-gcc -static -lintl xqmstats.o common.o
pot.o -o xqmstats
quotastats.o: In function `get_proc_num':
quotastats.c:(.text+0x58): undefined reference to libintl_gettext' quotastats.o: In function main':
quotastats.c:(.text.startup+0x138): undefined reference to libintl_gettext' quotastats.c:(.text.startup+0x1b4): undefined reference to libintl_gettext' quotastats.c:(.text.startup+0x1c4): undefined reference to libintl_gettext' quotastats.c:(.text.startup+0x228): undefined reference to libintl_gettext' quotastats.o:quotastats.c:(.text.startup+0x238): more undefined references to `libintl_gettext' follow
pot.o: In function `gettexton':
pot.c:(.text+0x1c): undefined reference to libintl_bindtextdomain' pot.c:(.text+0x28): undefined reference to libintl_textdomain'
collect2: error: ld returned 1 exit status
make[2]: *** [quotastats] Error 1
make[2]: *** Waiting for unfinished jobs....
xqmstats.o: In function `main':
xqmstats.c:(.text.startup+0x70): undefined reference to libintl_gettext' xqmstats.c:(.text.startup+0x100): undefined reference to libintl_gettext' xqmstats.c:(.text.startup+0x10c): undefined reference to libintl_gettext' xqmstats.c:(.text.startup+0x11c): undefined reference to libintl_gettext' xqmstats.c:(.text.startup+0x12c): undefined reference to libintl_gettext' xqmstats.o:xqmstats.c:(.text.startup+0x13c): more undefined references to libintl_gettext' follow
--->---
The reason seems to be in improper location of "-lintl".
Incase of static linkage it should be after (on left side) object files that call symbols of the library.
In other words following command line will work:
--->---
arm-buildroot-linux-uclibcgnueabi-gcc -static quotastats.o common.o pot.o -lintl -o quotastats
--->---
In its turn "-lintl" is put in the beginning of command line because it's a part of LDFLAGS in quota's Makefile. And in "package/quota/quota.mk" we explicitly set it with "QUOTA_LDFLAGS += -lintl".
So the only proper fix I may think of is modification of quota's Makefile.in so that libraries are appended in the end of link command separately from LDFLAGS or move LDFLAGS in the end.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 7574] quota-4.01 fails to build statically
https://bugs.busybox.net/show_bug.cgi?id=7574
--- Comment #1 from Alexey Brodkin <[email protected]> 2014-10-28 13:09:31 UTC --- Created attachment 5750
--> https://bugs.busybox.net/attachment.cgi?id=5750
Defconfig
This defconfig could be used for reproduction of the issue with up-to-date master branch of Buildroot
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 7574] quota-4.01 fails to build statically
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=7574
--- Comment #2 from Thomas De Schampheleire <[email protected]> 2014-10-28 18:15:27 UTC --- Normally, a separate variable LDLIBS is used for that purpose. This variable is
then included at the end of the link command line, unlike LDFLAGS. At least
this is the case in the implicit make recipes. I would assume that autotools
has a similar distinction.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 7574] quota-4.01 fails to build statically
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=7574
--- Comment #3 from Thomas Petazzoni <[email protected]> 2014-11-09 13:20:38 UTC --- Patch series sent at
http://lists.busybox.net/pipermail/buildroot/2014-November/111618.html to fix
this bug.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 7574] quota-4.01 fails to build statically
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=7574
Thomas Petazzoni <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at buildroot.uclibc |thomas.petazzoni at free-elect
|.org |rons.com
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
[Buildroot] [Bug 7574] quota-4.01 fails to build statically
In reply to bugzilla at busybox.nethttps://bugs.busybox.net/show_bug.cgi?id=7574
Thomas Petazzoni <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED--- Comment #4 from Thomas Petazzoni <[email protected]> 2014-11-10 09:16:18 UTC --- Patch applied as of
http://git.buildroot.net/buildroot/commit/?id=06d310e7a172a3dc61e30a4e5937e4455f6d340b,
bug fixed.
Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.