Summary: | dev-lang/lua uses system libtool when it should use a local one | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Justin Lecher (RETIRED) <jlec> |
Component: | Current packages | Assignee: | Matti Bickel (RETIRED) <mabi> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ajungren, flameeyes, hans, rafaelmartins |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
/var/log/portage/build/dev-lang/lua-5.1.4-r6:20100906-062204.log
Build log |
Description
Justin Lecher (RETIRED)
2010-09-06 06:25:44 UTC
Created attachment 246223 [details]
/var/log/portage/build/dev-lang/lua-5.1.4-r6:20100906-062204.log
build.log
*** Bug 336706 has been marked as a duplicate of this bug. *** That's strange. Can you please attach the output of grep '#include' /var/tmp/portage/dev-lang/lua-5.1.4-r6/work/lua-5.1.4/src/luac.c The includes and function definitions it is complaining about should be there and I can't reproduce the bug here with my CFLAGS. Will now try with yours. # grep '#include' /var/tmp/portage/dev-lang/lua-5.1.4-r6/work/lua-5.1.4/src/luac.c #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "lua.h" #include "lauxlib.h" #include "ldo.h" #include "lfunc.h" #include "lmem.h" #include "lobject.h" #include "lopcodes.h" #include "lstring.h" #include "lundump.h" It magically disappeared now. Don't know what I changed. Perhaps we should close w/ INVALID. Created attachment 252045 [details]
Build log
Probably a parallel make problem? Not a paralell make bug, and I'm hitting this as well now in my hardened vservers chroot. Justin did you play with libtool's econf line by chance? I hit this because I built my libtool with --disable-static. (In reply to comment #9) > Justin did you play with libtool's econf line by chance? I hit this because I > built my libtool with --disable-static. Its an old bug, but I will test it again. I cannot reproduce it anymore. EXTRA_ECONF="--disable-static" iemerge -1 =dev-lang/lua-5.1.4 libtool Makes it fail. I guess we can consider this as WORKSFORME or INVALID then, but at least we know what causes it. On the other hand I think that lua's build system is crazy, but that's beside the point I guess. Works for everyone who doesn't fiddle around with libtool. For a long time I'm planning to port the Lua build system for autotools and throw these handwritten Makefiles away, but looking at the lua mailing list archives I saw that other people already tried something like that without success. (In reply to comment #15) > For a long time I'm planning to port the Lua build system for autotools and > throw these handwritten Makefiles away, but looking at the lua mailing list > archives I saw that other people already tried something like that without > success. I mean the upstream rejected the patches. I get the same error now emerging dev-lang/lua. I have never touched libtool, and in fact, I tried emerge -1 libtool lua to rebuild libtool, and that did nothing. I've also tried disabling parallel make, which didn't do anything. # emerge --ignore-default-opts --info =dev-lang/lua-5.1.4-r7 Portage 2.1.10.27 (default/linux/x86/10.0/desktop, gcc-4.5.3, glibc-2.13-r4, 3.0.6-gentoo i686) ================================================================= System Settings ================================================================= System uname: Linux-3.0.6-gentoo-i686-Intel-R-_Atom-TM-_CPU_N270_@_1.60GHz-with-gentoo-2.1 Timestamp of tree: Mon, 17 Oct 2011 03:00:01 +0000 app-shells/bash: 4.2_p10 dev-lang/python: 2.7.2-r3, 3.2.2 dev-util/pkgconfig: 0.26 sys-apps/baselayout: 2.1 sys-apps/openrc: 0.9.4 sys-apps/sandbox: 2.5 sys-devel/autoconf: 2.68 sys-devel/automake: 1.11.1-r1 sys-devel/binutils: 2.21.1-r1 sys-devel/gcc: 4.5.3-r1 sys-devel/gcc-config: 1.4.1-r1 sys-devel/libtool: 2.4-r3 sys-devel/make: 3.82-r3 sys-kernel/linux-headers: 2.6.39 (virtual/os-headers) sys-libs/glibc: 2.13-r4 Repositories: gentoo ACCEPT_KEYWORDS="x86 ~x86" ACCEPT_LICENSE="* -@EULA" CBUILD="i686-pc-linux-gnu" CFLAGS="-ggdb -march=native -O2 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-ggdb -march=native -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="" GENTOO_MIRRORS="http://distfiles.gentoo.org" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="en" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_COMPRESS="xz" PORTAGE_COMPRESS_FLAGS="-9eq" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac acpi alsa bash-completion bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cscope cups curl cxx dbus dri dts dvd dvdr emboss encode exif fam firefox flac fortran gdu gif gmp gpm gtk icu ipv6 jpeg lcms libnotify lua lzma mad mmx mng modules mp3 mp4 mpeg mudflap ncurses nptl nptlonly offensive ogg opengl openmp pam pango pcre pdf perl png policykit ppds pppd python readline sdl session spell sse sse2 sse3 ssl ssse3 startup-notification svg sysfs threads tiff truetype udev unicode usb vim-syntax vorbis x264 x86 xcb xml xorg xulrunner xv xvid zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse synaptics wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_RSYNC_EXTRA_OPTS That's because the static-libs USE flag in current libtool ebuild does the same as my stupid hack before. So we're back to square one. Yep, I can confirm that adding "sys-devel/libtool static-libs" to package.use makes dev-lang/lua build fine. Are there any bad side effects to adding the static-libs USE flag? this looks like a failing in lua to me. it shouldn't be using the system libtool and any package doing so are broken. in this case, it builds its "luac" binary and statically links against liblua.a instead of using the dynamic liblua.so. the luac binary uses symbols which are marked hidden in liblua.so. you can reproduce the issue regardless of how system libtool is built by removing -static from the Makefile link steps. the system libtool itself does change behavior (see build_old_libs=no/yes in /usr/bin/libtool). so it only outputs PIC objects *by default*. i'll probably tweak this in a newer libtool, but lua is still broken and needs addressing. The point is that lua never had a local libtool. I hacked the build process so we could get dynamic libs in the first place. @spanky: What do you suggest, shipping a fixed libtool via custom patchset? I thought libtool was there for Makefiles to call it? I've introduced a minimal configure.in to generate a local libtool. Since I touch autotools with a 5" pole, can somebody check that I didn't break lua in the process? Is this lua-5.2 local libtool provoking https://bugs.gentoo.org/show_bug.cgi?id=406985 ? The bug is probably not related to libtool (since it should have happened with my libtooled 5.1, too). I'm closing this as nobody commented on the actual merit of the patch and so I assume it's doing what it's supposed to do. Let's get on with fixing the lua-5.2 upgrade headaches :) |