Age | Commit message (Collapse) | Author |
|
toolchain to any arbitrary directory...
|
|
Here is the basic theory of operation:
SHARED_LIB_LOADER_PATH/ <The location where the shared lib
loader will be installed and where the
compiler will cause apps to look for it.>
DEVEL_PREFIX/
bin/ <contains gcc, ld, etc for setting PATH=$DEVEL_PREFIX/bin:$PATH>
lib/ <contains all runtime and static libs>
include/ <Where all the header files go>
SYSTEM_DEVEL_PREFIX/
usr/bin/ <contains arch-uclibc-gcc, arch-uclibc-ld, etc that
might be installed by a .deb or .rpm into /usr/bin,
but can happily live under DEVEL_PREFIX>
PREFIX
This is prepended during 'make install's allowing you to shift things to
be installed under some alternate location (such as when building a .deb)
-Erik
|
|
along the line this got messed up...
|
|
issues, and syns things (as far as I am willing) with Dave Schleef's
tree. We may need to go another round or so, but we do seem to be
converging...
|
|
with the new build system...
-Erik
|
|
few tiny fixups here and there from me. Seems to work just fine and
will hopefully be a bit better behaved.
-Erik
|
|
ENV variables only. The current behavior violates the principle of
least surprise...
-Erik
|
|
|
|
else fails. Let <arch>-uclibc-gcc --uclibc-use-build-dir set the
shared lib loader to the one in the builddir's path.
-Erik
|
|
|
|
-Erik
|
|
those behaviors can be invoked from the command line.
|
|
TARGET_PREFIX to allow more flexibility. Also modified the gcc wrapper
to do the right thing if -Wl,--dynamic-linker,xxx is passed on the command
line. The gcc wrapper will also check the env variable UCLIBC_GCC_LDOPT
for a dynamic linker option at runtime (although command line arg overrides
the env variable).
|
|
To build with an uninstaled uClibc, set UCLIBC_GCC=build in your env,
or rename it/symlink to it using a name containing the string "build".
|
|
those who want to should now be able to compile against uClibc without
installing it (using the "build" behavior).
|
|
using BUILD_DIR and uClibc dynamic linker, use the one in the build dir.
If people want the "both dir" behavior, I'll enable it similar to the
"build" and "rpath" behaviors. See the comments in the file for how this
works.
|
|
so we now parallel the behavior of the standard tools.
Also make sure we check INSTALLDIR/lib and INSTALLDIR/usr/lib for libraries.
-Erik
|
|
gcc was looking for crt0 in the wrong dir. Oops!
|
|
|
|
tree is less messy now (which helps), all libraries are placed into
uClibc/lib when compiling, all libraries now use a consistant mechanism
for being built, all libraries use a consistant naming scheme where the
lib name includes the uClibc version number, which makes ldconfig
happy and willing to work with us.
-Erik
|
|
was using one name and the ld.so-1 dir was using another (they happened
to be the same). Fix that.
-Erik
|
|
|
|
are compiling for an arch for which uClibc has an ld.so or not,
and otherwise sets things up to use the system ld.so.
-Erik
|
|
PATH and things will now simply compile vs uClibc. Or you can add
INSTALL_DIR/usr/bin to your path and use it as a cross compiler.
Either way, it works now.
-Erik
|
|
dir. Use both automagically when compiling.
-Erik
|
|
|
|
libraries...
|
|
be linked. Just make libc.so link vs the shared lib loader and everything
works fine. Duh. Thanks to Michael Shmulevich <michaels@jungo.com> for
clueing me in.
-Erik
|
|
by explicitly linking against it. That way 'ldd' tells us what
we need to know.
-Erik
|
|
-Erik
|
|
|
|
|
|
library (path and version!!!) to the args instead. For example, add
/lib/libdl.so.1 if DYNAMIC_LINKER is /lib/ld-linux.so.1.
|
|
|
|
Set up a default lib dir off the root of the uClibc compile dir. This
really needs more thought, but is good enough for now I think.
|
|
was not working when booting busybox as init, even though it workes when run on
my desktop system. I made boot floppy with just /dev, a few /etc entries,
busybox dynamically linked vs uClibc, and /lib with shared uClibc in it. And
just as several people have reported, it didn't work.
So I ran 'ldd /bin/true' and it showed 'true' is linked with the shared library
loader. But 'ldd ./busybox' showed it was only linked with uClibc. Doh! Of
course it couldn't work!
This patch fixes the gcc wrapper so when we link with the shared uClibc
library, we also always link with the correct shared lib loader. With this
patch in place, I have now sucessfully booted busybox linked vs the shared
uClibc library. And it works great!
-Erik
|
|
|
|
-Erik
|
|
|
|
-Erik
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|