This comment refers to the February 4, 2007 version of the document that the URL points to. In my case I am boostrapping using GCC 3.4.6 installed from www.sunfreeware.org, plus binutils from http://www.bolthole.com/solaris/pkg-get.html. I reached the point 1.14 (emerge --oneshot gawk) and found that gawk would no longer build, saying "ld: fatal: file filefuncs.so.0: open failed: No such file or directory". Since I had a working gawk in $EPREFIX/tmp I went on and did all steps up to and including 1.17, env FEATURES="-collision-protect" emerge --oneshot --nodeps portage I then retried 1.14, only to find that the build now stopped in the configure phase, saying I did not have a valid compiler. I then tried various things in a bit of a panic. Finally I found that these steps solved it for me, enough to be able to proceed: a) add the line CHOST=i386-pc-solaris to $EPREFIX/etc/make.conf b) export CHOST=i386-pc-solaris c) export REAL_CHOST=$CHOST d) gcc-config -f 1 After doing this I was able to `emerge --oneshot gawk' with success. I arrived at (c) by looking at the internals of gcc-config. Without this the script stubbornly complained that CHOST was not defined. I am not at all sure if I did the right thing. But since I got stuck with some kind of "no gcc available" diagnosis I am wondering if maybe the document should say something about how to enable the newly emerged gcc (version 4.1.2 in my case). Reproducible: Didn't try Steps to Reproduce:
I think this relates to filefuncs being built a bit differently than the rest. tc-getCC is being used, but should return i386-pc-solaris2.11-gcc or gcc for you. So I don't see what could go wrong there. I think the linker comes in to play here. The native linker doesn't understand -soname, and hence the second argument it barfs about. Need to check how to fix that.
I'm tempted to mark this bug as invalid. Code Listing 1.8: emerge linker and compiler $ emerge --oneshot --nodeps sys-devel/m4 $ emerge --oneshot --nodeps sys-apps/baselayout-prefix $ emerge --oneshot --nodeps sys-devel/binutils-config $ emerge --oneshot --nodeps sys-devel/binutils $ emerge --oneshot --nodeps sys-devel/gcc-config $ emerge --oneshot --nodeps sys-devel/gcc Code Listing 1.14: emerge gawk $ emerge --oneshot gawk So when gawk is emerged, gcc/binutils and their wrappers should be already installed in the system, and be in use.
Emerging portage solves the issue. The bootstrap document now only emerges gawk after portage has been emerged. Thanks!