Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 384251

Summary: dev-util/nsis-2.46: emerge fails with undefined reference to `___gxx_personality_sj0'
Product: Gentoo Linux Reporter: John Manko <john.manko>
Component: New packagesAssignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it <maintainer-needed>
Status: RESOLVED NEEDINFO    
Severity: normal CC: alonbl, Arsen.Shnurkov, bertrand, vapier
Priority: Normal Keywords: NeedPatch
Version: unspecified   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build.log
environment
build.log (success)

Description John Manko 2011-09-23 21:26:15 UTC
Trying to emerge nsis fails.  The url above is to the forum post detailing more information.  Here is the build output:

Contrib/Makensisw/update.cpp: In function 'DWORD UpdateThread(void*)':
Contrib/Makensisw/update.cpp:61:29: warning: deprecated conversion from string constant to 'char*'
Contrib/Makensisw/update.cpp:66:29: warning: deprecated conversion from string constant to 'char*'
Contrib/Makensisw/update.cpp:68:29: warning: deprecated conversion from string constant to 'char*'
Contrib/Makensisw/update.cpp:78:51: warning: deprecated conversion from string constant to 'char*'
Contrib/Makensisw/update.cpp:79:30: warning: deprecated conversion from string constant to 'char*'
Contrib/Makensisw/update.cpp:85:38: warning: suggest parentheses around assignment used as truth value
Contrib/Makensisw/update.cpp: In function 'void Update()':
Contrib/Makensisw/update.cpp:132:40: warning: deprecated conversion from string constant to 'char*'
i686-pc-mingw32-windres "-DNSISCALL= __attribute__((__stdcall__))" -DRELEASE=2.3 -Ibuild/release/config -IContrib/Makensisw -i Contrib/Makensisw/resource.rc -o build/release/Makensisw/resource-rc.o
i686-pc-mingw32-g++ -o build/release/Makensisw/makensisw.exe -mwindows -Wl,--file-alignment,512 -Wl,-e_WinMain@16 build/release/Makensisw/makensisw.o build/release/Makensisw/noclib.o build/release/Makensisw/toolbar.o build/release/Makensisw/utils.o build/release/Makensisw/version.o build/release/Makensisw/update.o build/release/Makensisw/jnetlib/asyncdns.o build/release/Makensisw/jnetlib/connection.o build/release/Makensisw/jnetlib/httpget.o build/release/Makensisw/jnetlib/util.o build/release/Makensisw/resource-rc.o -lkernel32 -ladvapi32 -luser32 -lgdi32 -lshell32 -lcomdlg32 -lcomctl32 -lwsock32
build/release/Makensisw/update.o:update.cpp:(.text+0x15): undefined reference to `___gxx_personality_sj0'
build/release/Makensisw/update.o:update.cpp:(.text+0x247): undefined reference to `___gxx_personality_sj0'
build/release/Makensisw/jnetlib/connection.o:connection.cpp:(.text+0x12): undefined reference to `___gxx_personality_sj0'
build/release/Makensisw/jnetlib/httpget.o:httpget.cpp:(.text+0x7cb): undefined reference to `___gxx_personality_sj0'
collect2: ld returned 1 exit status
scons: *** [build/release/Makensisw/makensisw.exe] Error 1
scons: building terminated because of errors.
 * ERROR: dev-util/nsis-2.46 failed (compile phase):
 *   scons failed
 *
 * Call stack:
 *     ebuild.sh, line  91:  Called src_compile
 *   environment, line 176:  Called die
 * The specific snippet of code:
 *       do_scons || die "scons failed"
 *
 * If you need support, post the output of 'emerge --info =dev-util/nsis-2.46',
 * the complete build log and the output of 'emerge -pqv =dev-util/nsis-2.46'.
 * The complete build log is located at '/var/tmp/portage/dev-util/nsis-2.46/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/nsis-2.46/temp/environment'.
 * S: '/var/tmp/portage/dev-util/nsis-2.46/work/nsis-2.46-src'

>>> Failed to emerge dev-util/nsis-2.46, Log file:

>>>  '/var/tmp/portage/dev-util/nsis-2.46/temp/build.log'

 * Messages for package dev-util/nsis-2.46:

 * ERROR: dev-util/nsis-2.46 failed (compile phase):
 *   scons failed
 *
 * Call stack:
 *     ebuild.sh, line  91:  Called src_compile
 *   environment, line 176:  Called die
 * The specific snippet of code:
 *       do_scons || die "scons failed"
 *
 * If you need support, post the output of 'emerge --info =dev-util/nsis-2.46',
 * the complete build log and the output of 'emerge -pqv =dev-util/nsis-2.46'.
 * The complete build log is located at '/var/tmp/portage/dev-util/nsis-2.46/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/nsis-2.46/temp/environment'.
 * S: '/var/tmp/portage/dev-util/nsis-2.46/work/nsis-2.46-src'

Reproducible: Always

Steps to Reproduce:
1.follow steps for emerge crossdev
2.USE="-hardened" crossdev i686-pc-mingw32 
3.emerge nsis
Actual Results:  
Fails with the above error

Expected Results:  
should install NSIS
Comment 1 SpanKY gentoo-dev 2011-09-26 03:46:37 UTC
post `emerge --info` in all your bug reports

also post the full build log as an attachment
Comment 2 John Manko 2011-09-26 13:37:45 UTC
Created attachment 287773 [details]
build.log
Comment 3 John Manko 2011-09-26 13:38:09 UTC
Created attachment 287775 [details]
environment
Comment 4 John Manko 2011-09-26 13:39:01 UTC
emerge --info
Portage 2.1.10.19 (hardened/linux/x86, gcc-4.3.4, glibc-2.13-r4, 2.6.34-gentoo-r6 i686)
=================================================================
System uname: Linux-2.6.34-gentoo-r6-i686-Intel-R-_Celeron-R-_CPU_2.40GHz-with-gentoo-2.0.3
Timestamp of tree: Sat, 24 Sep 2011 07:45:01 +0000
ccache version 3.1.6 [disabled]
app-shells/bash:          4.2_p10
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.6.7-r2, 2.7.2-r3, 3.1.4-r2, 3.2.2
dev-util/ccache:          3.1.6
dev-util/cmake:           2.8.5-r2
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.9.3-r1
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.68
sys-devel/automake:       1.9.6-r2, 1.10.3, 1.11.1-r1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.3.4, 4.4.5, 4.5.2
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r3
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo godin
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/sonar/conf /usr/share/maven-bin-3.0/conf"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://www.gtlib.gatech.edu/pub/gentoo http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ http://cudlug.cudenver.edu/gentoo/ "
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
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="/var/lib/layman/godin"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="acl berkdb bzip2 cli cracklib crypt cups cxx dri gdbm gpm hardened iconv modules mudflap ncurses nls nptl nptlonly openmp pam pax_kernel pcre perl pic pppd python readline session ssl sysfs tcpd urandom x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" 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="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="apm ark chips cirrus cyrix dummy fbdev glint i128 i740 intel mach64 mga neomagic nsc nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa via vmware nouveau" 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, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 5 Victor Leschuk 2011-10-19 17:49:39 UTC
One should link with -lsupc++ flag. In this case it works. 

I didn't find better way to make scons use supc++ lib but the following in the source tree: 

find ./ -name SConscript -exec sed -i '/^libs\ =\ Split/a\ \tsupc++' {} \;

nsis authors placed all library deps in each SConscript file instead of using one central config. 

After adding supc++ nsis was built successfully.
Comment 6 Alin Năstac (RETIRED) gentoo-dev 2011-11-11 16:20:56 UTC
*** Bug 374795 has been marked as a duplicate of this bug. ***
Comment 7 SpanKY gentoo-dev 2011-12-11 06:19:31 UTC
*** Bug 390199 has been marked as a duplicate of this bug. ***
Comment 8 SpanKY gentoo-dev 2011-12-11 06:20:22 UTC
i can build nsis with gcc-4.5.3 just fine ...
# qlist -I -v cross-mingw nsis
cross-mingw32/binutils-2.22
cross-mingw32/gcc-4.5.3-r1
cross-mingw32/mingw-runtime-3.18
cross-mingw32/w32api-3.17.2
dev-util/nsis-2.46
Comment 9 SpanKY gentoo-dev 2011-12-11 06:26:21 UTC
Created attachment 295439 [details]
build.log (success)
Comment 10 Alon Bar-Lev (RETIRED) gentoo-dev 2013-06-02 00:56:42 UTC
Working with i686-w64-mingw32 target.
Please reopen if not working for you.
Thanks!
Comment 11 John Manko 2013-06-18 15:09:27 UTC
I opened this because it's still an issue.  

I'd like to add some additional comments.

For the longest time I had the following packages masked because emerging them would fail:

=cross-i686-mingw32/mingw-runtime-3.20
=cross-i686-mingw32/mingw-runtime-3.20.2
>cross-i686-pc-mingw32/gcc-4.6.3

I've since created a bug because I'm trying to emerge them now and they still fail:
https://bugs.gentoo.org/show_bug.cgi?id=473708

Now, I'm not sure it having those masked caused a problem dev-util/nsis (maybe those package versions are required), but when trying to emerge the latest dev-util/nsis-2.46-r1 I still error, though it's different now.  

Source/exehead/util.c
Source/exehead/util.c: In function 'myRegGetStr':
Source/exehead/util.c:526:5: warning: pointer targets in passing argument 5 of 'RegQueryValueExA' differ in signedness [-Wpointer-sign]
/usr/i686-pc-mingw32/mingw/include/winreg.h:97:23: note: expected 'LPBYTE' but argument is of type 'char *'
i686-pc-mingw32-g++ -o build/release/stub_bzip2/stub_bzip2.exe -mwindows -nostdlib -Wl,--exclude-libs,msvcrt.a -Wl,--file-alignment,512 -Wl,-e,_WinMain@16 -Wl,-Map,build/release/stub_bzip2/stub_bzip2.map -T SCons/Config/linker_script build/release/stub_bzip2/bgbg.o build/release/stub_bzip2/components.o build/release/stub_bzip2/exec.o build/release/stub_bzip2/fileform.o build/release/stub_bzip2/Main.o build/release/stub_bzip2/plugin.o build/release/stub_bzip2/Ui.o build/release/stub_bzip2/util.o build/release/stub_bzip2/crc32.o build/release/stub_bzip2/bzlib.o build/release/stub_bzip2/decompress.o build/release/stub_bzip2/huffman.o build/release/stub_bzip2/resource.o -lkernel32 -luser32 -lgdi32 -lshell32 -ladvapi32 -lcomdlg32 -lcomctl32 -lole32 -lversion -luuid
build/release/stub_bzip2/Ui.o:Ui.c:(.text+0x1af9): undefined reference to `_TreeView_GetItemHeight'
build/release/stub_bzip2/Ui.o:Ui.c:(.text+0x1b0e): undefined reference to `_TreeView_SetItemHeight'
build/release/stub_bzip2/Ui.o:Ui.c:(.text+0x254a): undefined reference to `_ListView_SetExtendedListViewStyleEx'
/usr/libexec/gcc/i686-pc-mingw32/ld: build/release/stub_bzip2/Ui.o: bad reloc address 0x98 in section `.rdata'
/usr/libexec/gcc/i686-pc-mingw32/ld: final link failed: Invalid operation
collect2: ld returned 1 exit status
scons: *** [build/release/stub_bzip2/stub_bzip2.exe] Error 1
scons: building terminated because of errors.
 * ERROR: dev-util/nsis-2.46-r1 failed (compile phase):
 *   scons failed
 * 
 * Call stack:
 *     ebuild.sh, line  93:  Called src_compile
 *   environment, line 2045:  Called die
 * The specific snippet of code:
 *       do_scons || die "scons failed"
 * 
 * If you need support, post the output of `emerge --info '=dev-util/nsis-2.46-r1'`,
 * the complete build log and the output of `emerge -pqv '=dev-util/nsis-2.46-r1'`.
 * The complete build log is located at '/var/tmp/portage/dev-util/nsis-2.46-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/nsis-2.46-r1/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-util/nsis-2.46-r1/work/nsis-2.46-src'
 * S: '/var/tmp/portage/dev-util/nsis-2.46-r1/work/nsis-2.46-src'

>>> Failed to emerge dev-util/nsis-2.46-r1, Log file:

>>>  '/var/tmp/portage/dev-util/nsis-2.46-r1/temp/build.log'
Comment 12 Alon Bar-Lev (RETIRED) gentoo-dev 2013-06-18 15:14:43 UTC
(In reply to John Manko from comment #11)
> I opened this because it's still an issue.  
> 
> I'd like to add some additional comments.
> 
> For the longest time I had the following packages masked because emerging
> them would fail:
> 
> =cross-i686-mingw32/mingw-runtime-3.20
> =cross-i686-mingw32/mingw-runtime-3.20.2
> >cross-i686-pc-mingw32/gcc-4.6.3

please use mingw64 project: i686-w64-mingw32
the old mingw project is inactive and should not be used any more.
Comment 13 John Manko 2013-06-18 16:27:00 UTC
Can you clarify?

# emerge -p i686-w64-mingw32

These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "i686-w64-mingw32".

emerge: searching for similar names... nothing similar found.

# emerge --search i686-w64-mingw32
Searching...    
[ Results for search key : i686-w64-mingw32 ]
[ Applications found : 0 ]
Comment 14 Alon Bar-Lev (RETIRED) gentoo-dev 2013-06-18 17:18:33 UTC
(In reply to John Manko from comment #13)
> Can you clarify?
> 
> # emerge -p i686-w64-mingw32

# emerge crossdev
# crossdev -t i686-w64-mingw32
Comment 15 SpanKY gentoo-dev 2013-06-18 17:51:20 UTC
i've never had a problem myself with using `crossdev mingw32`.  nsis built & produced things fine with that.
Comment 16 John Manko 2013-06-18 19:04:04 UTC
================================================================
# crossdev -t i686-w64-mingw32
----------------------------------------------------------------
 * crossdev version:      20120913
 * Host Portage ARCH:     x86
 * Target Portage ARCH:   x86
 * Target System:         i686-w64-mingw32
 * Stage:                 4 (C/C++ compiler)
 * ABIs:                  default

 * binutils:              binutils-[latest]
 * gcc:                   gcc-[latest]
 * libc:                  mingw64-runtime-[latest]

 * CROSSDEV_OVERLAY:      /var/lib/layman/godin
 * PORT_LOGDIR:           /var/log/portage
 * PORTAGE_CONFIGROOT:    
 * Portage flags:         
  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _ 
 * leaving sys-devel/binutils in /var/lib/layman/godin
 * leaving sys-devel/gcc in /var/lib/layman/godin
 * leaving dev-util/mingw64-runtime in /var/lib/layman/godin
 * leaving sys-devel/gdb in /var/lib/layman/godin
 * leaving metadata/layout.conf alone in /var/lib/layman/godin
  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _  -  ~  -  _ 
 * Log: /var/log/portage/cross-i686-w64-mingw32-binutils.log
 * Emerging cross-binutils ...
================================================================


It just sits there.  tail output:


================================================================
# tail -f /var/log/portage/cross-i686-w64-mingw32-binutils.log
Calculating dependencies  ... done!

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) cross-i686-w64-mingw32/binutils-2.23.1 from
godin
================================================================


I made sure to unemerge all installed cross binutils, etc.
Comment 17 Alon Bar-Lev (RETIRED) gentoo-dev 2013-06-18 19:16:20 UTC
(In reply to SpanKY from comment #15)
> i've never had a problem myself with using `crossdev mingw32`.  nsis built &
> produced things fine with that.

I too... but if there is something to be fixed, we can fix in in mingw32-w64 and not in mingw32 as upstream is responsive.
Comment 18 Alon Bar-Lev (RETIRED) gentoo-dev 2013-10-15 18:16:45 UTC
Please reopen if any more information.

I cannot produce this, nor got a new log with use of i686-w64-mingw32