Subject: pkg/32905: www/firefox Solaris Link errors
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <jakerosoft@gmail.com>
List: pkgsrc-bugs
Date: 02/22/2006 20:00:00
>Number:         32905
>Category:       pkg
>Synopsis:       www/firefox Solaris Link errors
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Feb 22 20:00:00 +0000 2006
>Originator:     Jake Kupersmith
>Release:        pkgsrc
>Organization:
>Environment:
SunOS frylock 5.10 Generic_118822-25 sun4u sparc SUNW,Ultra-60

>Description:
When building firefox on Solaris 10, using the Sun Studio compiler suite..  I receive the following error...

rm -f SunOS5.10_OPT.OBJ/libfreebl_pure32_3.so
cc -G -h libfreebl_pure32_3.so -R/usr/local/lib/firefox -R '$ORIGIN' -B symbolic -z defs -z now -z text -M mapfile.Solaris -o SunOS5.10_OPT.OBJ/libfreebl_pure32_3.so SunOS5.10_OPT.OBJ/ldvector.o SunOS5.10_OPT.OBJ/prng_fips1861.o SunOS5.10_OPT.OBJ/sysrand.o SunOS5.10_OPT.OBJ/sha_fast.o SunOS5.10_OPT.OBJ/md2.o SunOS5.10_OPT.OBJ/md5.o SunOS5.10_OPT.OBJ/sha512.o SunOS5.10_OPT.OBJ/alg2268.o SunOS5.10_OPT.OBJ/arcfour.o SunOS5.10_OPT.OBJ/arcfive.o SunOS5.10_OPT.OBJ/desblapi.o SunOS5.10_OPT.OBJ/des.o SunOS5.10_OPT.OBJ/rijndael.o SunOS5.10_OPT.OBJ/aeskeywrap.o SunOS5.10_OPT.OBJ/dh.o SunOS5.10_OPT.OBJ/ec.o SunOS5.10_OPT.OBJ/pqg.o SunOS5.10_OPT.OBJ/dsa.o SunOS5.10_OPT.OBJ/rsa.o SunOS5.10_OPT.OBJ/shvfy.o SunOS5.10_OPT.OBJ/mpprime.o SunOS5.10_OPT.OBJ/mpmontg.o SunOS5.10_OPT.OBJ/mplogic.o SunOS5.10_OPT.OBJ/mpi.o SunOS5.10_OPT.OBJ/mp_gf2m.o   /var/db/work/www/firefox/work/mozilla/dist/lib/libsecutil.a  -L/var/db/work/www/firefox/work/mozilla/dist/lib/ -lplc4 -lplds4 -lnspr4 -lc
Undefined                       first referenced
 symbol                             in file
mont_mulf_noconv                    SunOS5.10_OPT.OBJ/mpmontg.o
conv_i32_to_d32                     SunOS5.10_OPT.OBJ/mpmontg.o
conv_i32_to_d16                     SunOS5.10_OPT.OBJ/mpmontg.o
s_mpv_mul_d_add_prop                SunOS5.10_OPT.OBJ/mpmontg.o
s_mpv_mul_d_add                     SunOS5.10_OPT.OBJ/mpi.o
conv_i32_to_d32_and_d16             SunOS5.10_OPT.OBJ/mpmontg.o
s_mpv_mul_d                         SunOS5.10_OPT.OBJ/mpmontg.o
ld: fatal: Symbol referencing errors. No output written to SunOS5.10_OPT.OBJ/libfreebl_pure32_3.so
make[5]: *** [SunOS5.10_OPT.OBJ/libfreebl_pure32_3.so] Error 1
make[5]: Leaving directory `/var/db/work/www/firefox/work/mozilla/security/nss/lib/freebl/SunOS5.10_OPT.OBJ/SunOSpure32'
make[4]: *** [libs] Error 2
make[4]: Leaving directory `/var/db/work/www/firefox/work/mozilla/security/nss/lib/freebl'
make[3]: *** [libs] Error 2

>How-To-Repeat:
cd /usr/pkgsrc/www/firefox;bmake;<wait 10 hours>

I found the following bug reports on Bugzilla
https://bugzilla.mozilla.org/show_bug.cgi?id=98578
https://bugzilla.mozilla.org/show_bug.cgi?id=77788

The problem is apparantly caused if the CFLAGS environment variable is set during the build process...  I have tried setting CFLAGS/CXXFLAGS to nothing and not setting them at all in mk.conf.. I assume the problem is pkgsrc is setting CFLAGS during the build.
>Fix:
Manual fix... (add the three missing libraries)
SunOS5.10_OPT.OBJ/mpi_sparc.o
SunOS5.10_OPT.OBJ/montmulfv8.o
SunOS5.10_OPT.OBJ/mpv_sparcv8.o  

cd /var/db/work/www/firefox/work/mozilla/security/nss/lib/freebl/SunOS5.10_OPT.OBJ

cp montmulfv8.o mpv_sparcv8.o mpi_sparc.o SunOSpure32/SunOS5.10_OPT.OBJ/

cc -G -h libfreebl_pure32_3.so -R/usr/local/lib/firefox -R '$ORIGIN' -B symbolic -z defs -z now -z text -M mapfile.Solaris -o SunOS5.10_OPT.OBJ/libfreebl_pure32_3.so SunOS5.10_OPT.OBJ/ldvector.o SunOS5.10_OPT.OBJ/prng_fips1861.o SunOS5.10_OPT.OBJ/sysrand.o SunOS5.10_OPT.OBJ/sha_fast.o SunOS5.10_OPT.OBJ/md2.o SunOS5.10_OPT.OBJ/md5.o SunOS5.10_OPT.OBJ/sha512.o SunOS5.10_OPT.OBJ/alg2268.o SunOS5.10_OPT.OBJ/arcfour.o SunOS5.10_OPT.OBJ/arcfive.o SunOS5.10_OPT.OBJ/desblapi.o SunOS5.10_OPT.OBJ/des.o SunOS5.10_OPT.OBJ/rijndael.o SunOS5.10_OPT.OBJ/aeskeywrap.o SunOS5.10_OPT.OBJ/dh.o SunOS5.10_OPT.OBJ/ec.o SunOS5.10_OPT.OBJ/pqg.o SunOS5.10_OPT.OBJ/dsa.o SunOS5.10_OPT.OBJ/rsa.o SunOS5.10_OPT.OBJ/shvfy.o SunOS5.10_OPT.OBJ/mpprime.o SunOS5.10_OPT.OBJ/mpmontg.o SunOS5.10_OPT.OBJ/mplogic.o SunOS5.10_OPT.OBJ/mpi.o SunOS5.10_OPT.OBJ/mp_gf2m.o SunOS5.10_OPT.OBJ/mpi_sparc.o SunOS5.10_OPT.OBJ/montmulfv8.o SunOS5.10_OPT.OBJ/mpv_sparcv8.o  /var/db/work/www/firefox/work/mozilla/dist/lib/libsecutil.
 a  -L/var/db/work/www/firefox/work/mozilla/dist/lib/ -lplc4 -lplds4 -lnspr4 -lc