Subject: pkg/11703: Mozilla-M18 package breaks on 1.5 a.out systems
To: None <gnats-bugs@gnats.netbsd.org>
From: None <abs@mono.org>
List: netbsd-bugs
Date: 12/12/2000 05:32:17
>Number:         11703
>Category:       pkg
>Synopsis:       Mozilla-M18 package breaks on 1.5 a.out systems
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 12 05:32:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     David Brownlee
>Release:        NetBSD-1.5 release
>Organization:
Occasionally
>Environment:
	
System: NetBSD spiff.int.purplei.com 1.5 NetBSD 1.5 (_SPIFF_) #0: Wed Dec 6 02:34:43 PST 2000 root@spiff.int.purplei.com:/files/transient/netbsd/src/sys/arch/arm32/compile/_SPIFF_ arm32


>Description:
	The mozilla package fails to build on a.out arm32 and m68k 1.5
	platforms with an error of the form:

gmake[2]: Entering directory `/var/obj/pkg/www/mozilla/work.arm32/mozilla/xpfe/bootstrap'
c++ -o mozilla-bin -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth -Wshadow -pedantic -Wno-long-long -O2 -Dunix -O  -DNDEBUG -DTRIMMED -DWIDGET_DLL=\"libwidget_gtk.so.1.0\" -DGFXWIN_DLL=\"libgfx_gtk.so.1.0\" -I/usr/X11R6/include -I/usr/pkg/lib/glib/include -I/usr/pkg/include/glib -I/usr/X11R6/include     nsAppRunner.o nsSetupRegistry.o nsSigHandlers.o   -Wl,-R/usr/X11R6/lib/mozilla -Wl,-R/usr/X11R6/lib -L/usr/X11R6/lib -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -Wl,-R/usr/X11R6/lib/mozilla -Wl,-R/usr/X11R6/lib -L/usr/X11R6/lib -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -L../../dist/bin -L../../dist/lib -Wl,--whole-archive -lxpfelocation_s -lmpfilelocprovider_s -Wl,--no-whole-archive  -lgkgfx -L../../dist/bin -lxpcom -lmozjs -ljsj -lplds4 -lplc4 -lnspr4   -lintl -lutil -lm    
/usr/lib/libgcc.a(_pure.o): Definition of symbol `___pure_virtual' (multiply defined)
/usr/lib/libgcc.a(__main.o): Definition of symbol `___do_global_dtors' (multiply defined)
/usr/lib/libgcc.a(__main.o): Definition of symbol `__exit_dummy_ref' (multiply defined)
/usr/lib/libgcc.a(__main.o): Definition of symbol `___do_global_ctors' (multiply defined)
/usr/lib/libgcc.a(__main.o): Definition of symbol `___main' (multiply defined)
/usr/lib/libgcc.a(_clear_cache.o): Definition of symbol `___clear_cache' (multiply defined)
/usr/lib/libgcc.a(_shtab.o): Definition of symbol `___shtab' (multiply defined)
/usr/lib/libgcc.a(_bb.o): Definition of symbol `___bb_exit_func' (multiply defined)
[ ... many many more errors ...]

>How-To-Repeat:
	Attempt to build on a.out arm32 or m68k 1.5 system.

>Fix:

	The above c++ line expands to:

/usr/libexec/collect2 -e start -dc -dp -o mozilla-bin /usr/lib/crt0.o -L/usr/X11R6/lib -L/usr/pkg/lib -L/usr/X11R6/lib -L/usr/pkg/lib -L../../dist/bin -L../../dist/lib -L../../dist/bin -L/usr/libexec nsAppRunner.o nsSetupRegistry.o nsSigHandlers.o -R/usr/X11R6/lib/mozilla -R/usr/X11R6/lib -R/usr/pkg/lib -R/usr/X11R6/lib/mozilla -R/usr/X11R6/lib -R/usr/pkg/lib --whole-archive -lxpfelocation_s -lmpfilelocprovider_s --no-whole-archive -lgkgfx -lxpcom -lmozjs -ljsj -lplds4 -lplc4 -lnspr4 -lintl -lutil -lstdc++ -lm -lgcc -lc -lgcc

	Note the double inclusion of -lgcc in the link line.

	Manually executing collect2 in the appropriate directory with the
	first -lgcc removed seems to avoid the issue. The make can then
	be restarted in /pkgsrc/www/mozilla and some substantial time later
	you will be rewarded with a nice new solar eclipting mozilla package.

	This is now probably a case for someone who understands toolchain
	magic :)
>Release-Note:
>Audit-Trail:
>Unformatted: