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

Reply via email to