cross compling openssh-3.5p1 for ppc
John Zavgren
john at zavgren.com
Mon Jan 12 04:02:55 EST 2004
Greetings:
------------ BACKGROUND --------------------------
I am using the Monta Vista development kit on an Intel RedHat Linux
platform... the target is PPC_405.
The configure utility that comes with the openssh-3.5p1 code will not
support cross compilation. It gives an error message about not being able
to test its results and then exits before it creates a Makefile. To get
around this bug, I edited the configure shell script so that whenever it
performs the cross compilation test it now prints a warning message and
continues.
This is how I generated my Makefile.
I obtained and built the latest zlib and openssl code, as per the
directions that came with openssh-3.5p1. I set the Library and Include
paths in the Makefile to refer these packages, and I verified (by
temporarily renaming the old packages so that references to them would
fail.) that the openssh-3.5p1 actually refers to the new packages.
------------ THE PROBLEM -----------------------------
The openssh-3.5p1 code will create all object files successfully. But, when
it tries to create program executables, it fails with the following error
message:
[root at sparky openssh-3.5p1]# ppc_405-ld -o ssh ssh.o sshconnect.o
sshconnect1.o sshconnect2.o sshtty.o readconf.o clientloop.o -L.
-Lopenbsd-compat/ -L ../../lib -lssh -lopenbsd-compat -lutil -lz
-lnsl -lcrypto -lcrypt
ppc_405-ld: warning: cannot find entry symbol _start; defaulting to 100028a0
/mnt/hardhat//devkit/ppc/405/bin//../target/lib/libc.so.6: undefined
reference to `atexit'
------------- AN ATTEMPTED SOLUTION
--------------------------------------------
In an attempt to resolve the reference to _start, I searched through all
the libraries that came with the development kit and found that this symbol
is either defined or referenced in the following shared object files:
/mnt/hardhat/devkit/ppc/405/target/lib/libc-2.2.3.so
/mnt/hardhat/devkit/ppc/405/target/lib/libc.so.6
/mnt/hardhat/devkit/ppc/405/target/lib/libdb-3.2.so
/mnt/hardhat/devkit/ppc/405/target/lib/libdb-3.so
/mnt/hardhat/devkit/ppc/405/target/lib/libdb.so
/mnt/hardhat/devkit/ppc/405/target/lib/libm-2.2.3.so
/mnt/hardhat/devkit/ppc/405/target/lib/libm.so.6
/mnt/hardhat/devkit/ppc/405/target/lib/libncurses.so.5
/mnt/hardhat/devkit/ppc/405/target/lib/libncurses.so.5.2
/mnt/hardhat/devkit/ppc/405/target/lib/libnss_wins.so
/mnt/hardhat/devkit/ppc/405/target/lib/libnss_wins.so.2
/mnt/hardhat/devkit/ppc/405/target/lib/libpam.so.0
/mnt/hardhat/devkit/ppc/405/target/lib/libpam.so.0.72
/mnt/hardhat/devkit/ppc/405/target/lib/libproc.so.2.0.7
/mnt/hardhat/devkit/ppc/405/target/lib/libwrap.so.0.7.6
I tried to link against each one of these object files in order to resolve
the reference to _start. This didn't work.
Then, in an act of final but defiant desperation, I changed my Makefile to
that it referred to the old ssl and zlib modules. (I wanted to be sure that
I hadn't made an error when I built them.)
This didn't help.
Any suggestions?
John Zavgren
603-654-5557 (home)
603-801-2094 (mobile)
More information about the openssh-unix-dev
mailing list