So, I spend some time with Interix again. (I fear I'll have to use Windows not so long from now, so who knows it can save me...)
I managed to get at point 1.8 in http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap-solaris.xml Of course the directions there don't entirely match, what I did is this: export PATH="$EPREFIX/usr/bin:$EPREFIX/bin:$EPREFIX/tmp/usr/bin:$EPREFIX/tmp/bin:$PATH" ./bootstrap-bash.sh $EPREFIX/tmp (start just bootstrapped bash) export PWD=`pwd` # this works around an annoying getcwd bug ./bootstrap-prefix.sh $EPREFIX/tmp gzip ./bootstrap-prefix.sh $EPREFIX/tmp tar ./bootstrap-prefix.sh $EPREFIX/tmp wget ./bootstrap-prefix.sh $EPREFIX/tmp bzip2 ./bootstrap-prefix.sh $EPREFIX/tmp sed ./bootstrap-prefix.sh $EPREFIX tree ./bootstrap-prefix.sh $EPREFIX/tmp coreutils6 ./bootstrap-prefix.sh $EPREFIX/tmp patch9 ./bootstrap-prefix.sh $EPREFIX/tmp grep ./bootstrap-prefix.sh $EPREFIX/tmp gawk ./bootstrap-prefix.sh $EPREFIX/tmp python ./bootstrap-prefix.sh $EPREFIX/tmp findutils ./bootstrap-prefix.sh $EPREFIX portage # this step isn't working, I need to release a fixed portage for that, but I hacked around it for the moment export LDFLAGS="-L${EPREFIX}/usr/lib -rpath=${EPREFIX}/usr/lib -L${EPREFIX}/lib -rpath=${EPREFIX}/lib" export CPPFLAGS="-I${EPREFIX}/usr/include" emerge --oneshot sed # lots of getcwd errors, doesn't hurt, goes away once bash is emerged emerge --oneshot make env USE="nocxx" emerge --oneshot "<bash-3.2_p33" env USE="-ssl" emerge --oneshot --nodeps wget This all takes a few ages to configure and compile, but goes fairly smoothly. At this point we have a patched bash (thanks mduft!) which is quiet, making Portage look good doing its thing. $ emerge --version Portage 2.2.00.9894-prefix (default-prefix/windows/interix/3.5/x86, gcc-3.3, unavailable, 3.5 x86) Continuing with step 1.8 where things go wrong: $ emerge --oneshot "<m4-1.4.11" $ emerge --oneshot --nodeps baselayout-prefix $ emerge --oneshot --nodeps flex $ emerge --oneshot --nodeps binutils-config $ emerge --oneshot --nodeps binutils $ emerge --oneshot --nodeps gcc-config $ emerge --oneshot --nodeps gcc gcc does not compile: i586-pc-interix3.5-ar rc ./libiberty.a \ ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./alloca.o ./argv.o ./ choose-temp.o ./concat.o ./cp-demint.o ./dyn-string.o ./fdmatch.o ./fibheap.o ./ floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o . /getruntime.o ./hashtab.o ./hex.o ./lbasename.o ./lrealpath.o ./make-relative-pr efix.o ./make-temp-file.o ./objalloc.o ./obstack.o ./partition.o ./pexecute.o ./ physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o ./safe-ctype.o ./sort.o ./spac es.o ./splay-tree.o ./strerror.o ./strsignal.o ./ternary.o ./unlink-if-ordinary. o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstr ndup.o ./asprintf.o ./insque.o ./mempcpy.o ./mkstemps.o ./stpcpy.o ./stpncpy.o ./strndup.o ./strverscmp.o ./vasprintf.o i586-pc-interix3.5-ar: error in loading shared libraries libbfd-2.18.so: cannot open shared object file: No such file or directory make[3]: *** [libiberty.a] Error 127 make[3]: Leaving directory `/dev/fs/C/GentooPrefixInterix3.5/var/tmp/portage/sys -devel/gcc-4.2.3/work/build/libiberty' Great, that also resembles an error I saw when configuring gcc, while trying to run objdump: bash-3.2$ objdump objdump: error in loading shared libraries libopcodes-2.18.so: cannot open shared object file: No such file or directory That just feels like rpath is messed up for binutils. Now it seems that binutils on Interix doesn't build ld and as, but includes them from the host. That explains why they do work, but fairly any other tool, and libbfd are broken. I cannot find and tool like ldd on Interix, and I haven't tried to compile scanelf, as I wonder if it's ELF at all (binutils says something like: ELF-like)... So, for those experts of you, wasn't it a good thing to install binutils? Is there something missing? What is the reason ld and as aren't compiled? -- Fabian Groffen Gentoo on a different level -- [email protected] mailing list
