pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: trouble with 2017Q3 bootstrap on Solaris 10 SPARC



Hi,
I had issue too with ld on Solaris 10 with pkgsrc-2017Q3 but not on bootstraping (see : http://mail-index.netbsd.org/pkgsrc-users/2017/12/28/msg026033.html ). 
I don't know if it can help you but here is how I bootstrap pkgsrc (  Did yesterday on a Solaris 10 zone ).

When using SFW GCC 3.4.3 :

echo "Hacking pkgsrc to work with SFW GCC"
perl -pi -e 's|_OPSYS_SUPPORTS_SSP=    yes|_OPSYS_SUPPORTS_SSP=    no|g' /usr/pkgsrc/mk/platform/SunOS.mk

echo "Bootstraping pkgsrc"
cd /usr/pkgsrc/bootstrap
env CC=/usr/sfw/bin/gcc CPP=/usr/sfw/bin/cpp CXX=/usr/sfw/bin/cpp CFLAGS='-O2' GCCBASE=/usr/sfw ./bootstrap --abi=64 | tee bootstrap.log

When using OpenCSW GCC 4.9 or 5.5 :

echo "Bootstraping pkgsrc"
cd /usr/pkgsrc/bootstrap
env CC=/opt/csw/bin/gcc CPP=/opt/csw/bin/cpp CXX=opt/csw/bin/cpp CFLAGS='-O2' GCCBASE=/opt/csw/bin ./bootstrap --abi=64 | tee bootstrap.log

As far I remember, at this point you will face a circular depedency when compiling lot of packages. Most of them you try to fetch their tarball using nbftp including ncurse which is required to compile nbftp itself. Ncurse is not installed on my Solaris systems. The quick workaround I suggest you would be to compile and install "fetch" (which does not require ncurse) and then add this to you mk.conf file :

FETCH_USING=            fetch

Hope it helps...


On Fri, Dec 29, 2017 at 10:22 AM, Andy Hooper <hooper%queensu.ca@localhost> wrote:
env CC=/home/pkgsrc/gcc49/bin/gcc GCCBASE=/home/pkgsrc/gcc49 ./bootstrap
--abi=32 --prefix=/export/home/pkgsrc/2017Q3 --unprivileged
...
===> Installing dependencies for bsdinstall-20160108
=> Configuring and building libnbcompat
...
checking whether the C compiler works... no
configure: error: in
`/export/home/pkgsrc/2017Q3/pkgsrc/bootstrap/work/wrk/sysutils/bsdinstall/work/libnbcompat':
configure: error: C compiler cannot create executables

>From config.log this is due to:
ld: fatal: option -dn and -P are incompatible

Where is ld getting a -P option? Passing CFLAGS=-v in to bootstrap, this
appears to be due to an option '-rpath' passed through gcc collect2.

 /home/pkgsrc/gcc49/libexec/gcc/sparc-sun-solaris2.10/4.9.4/collect2 -V -Y
P,/usr/ccs/lib:/lib:/usr/lib -Qy
/home/pkgsrc/gcc49/lib/gcc/sparc-sun-solaris2.10/4.9.4/crt1.o
/usr/lib/crti.o /usr/ccs/lib/values-Xa.o
/home/pkgsrc/gcc49/lib/gcc/sparc-sun-solaris2.10/4.9.4/crtbegin.o
-L/export/home/pkgsrc/2017Q3/pkgsrc/bootstrap/work/wrk/sysutils/bsdinstall/work/libnbcompat
-L/home/pkgsrc/gcc49/lib/gcc/sparc-sun-solaris2.10/4.9.4
-L/home/pkgsrc/gcc49/lib/gcc/sparc-sun-solaris2.10/4.9.4/../../../../sparc-sun-solaris2.10/lib
-L/usr/ccs/lib
-L/home/pkgsrc/gcc49/lib/gcc/sparc-sun-solaris2.10/4.9.4/../../.. -rpath
/export/home/pkgsrc/2017Q3/lib /var/tmp//ccak8y6Q.o -lssp_nonshared -lssp
-lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc
/home/pkgsrc/gcc49/lib/gcc/sparc-sun-solaris2.10/4.9.4/crtend.o /usr/lib/crtn.o

Solaris ld has valid single character options -r -p -a -t and -h. -p and -P
are closely related, so possibly the error on -P could be due to the actual -p.

My first thought for a source was libtool, since it is providing platform
independent link options. It's configuration has a transform related to
rpath with a double --, but nothing for -Wl,-rpath.

work/wrk/pkgtools/bootstrap-mk-files/work/.cwrapper/config/libtool:transform=opt:-Wl,--rpath:-Wl,-R
work/wrk/sysutils/bsdinstall/work/.cwrapper/config/libtool:transform=opt:-Wl,--rpath:-Wl,-R

I'm not sure bootstrap has gotten to calling libtool yet.

> find work -type f -exec grep -l '.-Wl,-rpath' {} \;
work/share/mk/bsd.prog.mk
work/wrk/pkgtools/cwrappers/work/cwrappers-20170611/cleanup-cc.c
work/wrk/pkgtools/cwrappers/work/cwrappers-20170611/fixup-libtool.c
work/wrk/pkgtools/cwrappers/work/cwrappers-20170611/generic-transform-cc.c
work/wrk/pkgtools/cwrappers/work/cwrappers-20170611/normalise-cc.c
work/wrk/pkgtools/cwrappers/work/.wrapper/tmp/gen-transform
work/wrk/pkgtools/cwrappers/work/.wrapper/tmp/transform.sed
work/wrk/pkgtools/cwrappers/work/.wrapper/tmp/untransform.sed
work/wrk/pkgtools/cwrappers/work/.wrapper/tmp/arg-pp-main
work/wrk/pkgtools/cwrappers/work/.wrapper/tmp/arg-source
work/wrk/pkgtools/bootstrap-mk-files/work/bootstrap-mk-files-20170802/bsd.prog.mk
work/wrk/pkgtools/bootstrap-mk-files/work/.destdir/export/home/pkgsrc/2017Q3/share/mk/bsd.prog.mk
work/wrk/pkgtools/bootstrap-mk-files/work/.packages/bootstrap-mk-files-20170802.tgz
work/wrk/sysutils/bsdinstall/work/.work.log

On last line of work/wrk/sysutils/bsdinstall/work/.work.log, which might be
coming out of cwrappers:
<.>
/export/home/pkgsrc/2017Q3/pkgsrc/bootstrap/work/wrk/sysutils/bsdinstall/work/.gcc/bin/gcc
-m32 -v -D_FORTIFY_SOURCE=2 '-D_PATH_DEVNULL=\"/dev/null\"'
'-DTARGET_STRIP=\"/usr/ccs/bin/strip\"' -DHAVE_NBCOMPAT_H=1
-I/export/home/pkgsrc/2017Q3/pkgsrc/bootstrap/work/wrk/sysutils/bsdinstall/work/libnbcompat
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-L/export/home/pkgsrc/2017Q3/pkgsrc/bootstrap/work/wrk/sysutils/bsdinstall/work/libnbcompat
-Wl,-rpath,/export/home/pkgsrc/2017Q3/lib conftest.c -D_FORTIFY_SOURCE=2
-fstack-protector
-I/export/home/pkgsrc/2017Q3/pkgsrc/bootstrap/work/wrk/sysutils/bsdinstall/work/.buildlink/include

It is getting quite intricate at this point, so I'm hoping someone more
familiar might share a tip to progress or diagnosis.

- Andy Hooper



Home | Main Index | Thread Index | Old Index