summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-08-10 08:00:08 +0000
committerEric Andersen <andersen@codepoet.org>2001-08-10 08:00:08 +0000
commit96277cfcea64ba6965b20fd78529f2f6fa59e32a (patch)
tree69692cef15440ff2a45bf0429482f7f23a25b902 /extra
parent7e79b9d3abb86bc457607ff3405052092cbf0069 (diff)
Update the build system, yet again. I hope this is the last time...
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
Diffstat (limited to 'extra')
-rw-r--r--extra/Configs/Config.arm78
-rw-r--r--extra/Configs/Config.cross.arm.uclinux74
-rw-r--r--extra/Configs/Config.i38678
-rw-r--r--extra/Configs/Config.m68k73
-rw-r--r--extra/Configs/Config.m68k.coff74
-rw-r--r--extra/Configs/Config.mips78
-rw-r--r--extra/Configs/Config.mipsel78
-rw-r--r--extra/Configs/Config.powerpc81
-rw-r--r--extra/Configs/Config.sh75
-rw-r--r--extra/gcc-uClibc/Makefile21
10 files changed, 437 insertions, 273 deletions
diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
index ee2d52804..5e7ce4db9 100644
--- a/extra/Configs/Config.arm
+++ b/extra/Configs/Config.arm
@@ -50,9 +50,6 @@ DODEBUG = false
# Compiler warnings you want to see
WARNINGS=-Wall
-# Enable support for shared libraries?
-HAVE_SHARED = true
-
# Note that the kernel source you use to compile with should be the same as the
# Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
# compatibility across kernel versions. So don't expect, for example, uClibc
@@ -112,8 +109,8 @@ LOCALE_DIR = "/usr/share/uClibc-locale/"
# It is actually smaller than "malloc", at least on i386. Right now, it
# only works on i386 (and maybe m68k) because it needs sbrk.
#MALLOC = malloc-simple
-MALLOC = malloc
-#MALLOC = malloc-930716
+#MALLOC = malloc
+MALLOC = malloc-930716
# If you want to collect common syscall code into one function, set to this to
# `true'. Set it to false otherwise.
@@ -139,30 +136,51 @@ INCLUDE_IPV6 = false
# If you want to compile the library as PIC code, turn this on.
DOPIC = false
-# PREFIX is the directory prefix that is applied to all installed
-# files. Typically, it is set to /usr or /usr/local, although it could
-# also be /opt/vendor_name_here/some/random/path/. The install_runtime
-# makefile target installs a few symbolic links based on PREFIX, not
-# DEVEL_PREFIX.
-#
-# DEVEL_PREFIX is the directory where the development environment will
-# be installed. The uClibc header files are installed into
-# $(DEVEL_PREFIX)/include, static libraries are installed into
-# $(DEVEL_PREFIX)/lib, etc. This directory is compiled into the uclibc
-# cross compiler spoofer. Generally, DEVEL_PREFIX should be set to
-# the same thing as $(PREFIX). DEVEL_PREFIX is used by the Makefile install
-# targets install_gcc, install_dev, and install_runtime.
+
+
+# Enable support for shared libraries? If this is false, you can
+# ignore all the rest of the options in this file...
+HAVE_SHARED = true
+
+# uClibc has a native shared library loader for some architectures.
+BUILD_UCLIBC_LDSO=true
+
+# If you are using shared libraries, but do not want/have a native
+# uClibc shared library loader, please specify the name of your
+# system's shared library loader here...
+#SYSTEM_LDSO=/lib/ld-linux.so.2
+
+# When using shared libraries, this path is the location where the
+# shared library will be invoked. This value will be compiled into
+# every binary compiled with uClibc.
#
-# TARGET_PREFIX is the directory into which the target runtime
-# environment is installed. The target runtime environment is what one
-# would use for a embedded system where uclibc is the native libaray.
-# This will typically be a staging area for creating a root filesystem
-# for the target system, so the default is in the local directory.
-#
-# If you want to install to a temporary directory before copying files
-# to their final location, define DESTDIR during the install step,
-# i.e., 'make install DESTDIR=/home/foo/uclibc/_install'.
-PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
-DEVEL_PREFIX = $(PREFIX)
-TARGET_PREFIX = /
+# BIG FAT WARNING:
+# If you do not have a shared library loader with the correct name
+# sitting in the directory this points to, your binaries will not run.
+SHARED_LIB_LOADER_PATH=$(DEVEL_PREFIX)/lib
+
+# DEVEL_PREFIX is the directory into which the uClibc development
+# environment will be installed. The result will look something
+# like the following:
+# DEVEL_PREFIX/
+# bin/ <contains gcc, ld, etc>
+# lib/ <contains all runtime and static libs>
+# include/ <Where all the header files go>
+# This value is used by the 'make install' Makefile target. Since this
+# directory is compiled into the uclibc cross compiler spoofer, you
+# have to recompile if you change this value...
+DEVEL_PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
+
+# SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+# usr/bin/arch-uclibc-gcc, usr/bin/arch-uclibc-ld, etc. This is only
+# used by the 'make install' target, and is not compiled into anything.
+# This defaults to $DEVEL_PREFIX, but makers of .rpms and .debs will
+# want to set this to "/" instead.
+SYSTEM_DEVEL_PREFIX = $(DEVEL_PREFIX)
+
+# If you want 'make install' to install everything under a temporary
+# directory, the define PREFIX during the install step,
+# i.e., 'make PREFIX=/var/tmp/uClibc install'.
+#PREFIX = $(TOPDIR)/_install
+PREFIX =
diff --git a/extra/Configs/Config.cross.arm.uclinux b/extra/Configs/Config.cross.arm.uclinux
index 344273efb..cc3501f70 100644
--- a/extra/Configs/Config.cross.arm.uclinux
+++ b/extra/Configs/Config.cross.arm.uclinux
@@ -50,9 +50,6 @@ DODEBUG = false
# Compiler warnings you want to see
WARNINGS=-Wall
-# Enable support for shared libraries?
-HAVE_SHARED = false
-
# Note that the kernel source you use to compile with should be the same as the
# Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
# compatibility across kernel versions. So don't expect, for example, uClibc
@@ -139,30 +136,51 @@ INCLUDE_IPV6 = false
# If you want to compile the library as PIC code, turn this on.
DOPIC = false
-# PREFIX is the directory prefix that is applied to all installed
-# files. Typically, it is set to /usr or /usr/local, although it could
-# also be /opt/vendor_name_here/some/random/path/. The install_runtime
-# makefile target installs a few symbolic links based on PREFIX, not
-# DEVEL_PREFIX.
-#
-# DEVEL_PREFIX is the directory where the development environment will
-# be installed. The uClibc header files are installed into
-# $(DEVEL_PREFIX)/include, static libraries are installed into
-# $(DEVEL_PREFIX)/lib, etc. This directory is compiled into the uclibc
-# cross compiler spoofer. Generally, DEVEL_PREFIX should be set to
-# the same thing as $(PREFIX). DEVEL_PREFIX is used by the Makefile install
-# targets install_gcc, install_dev, and install_runtime.
+
+
+# Enable support for shared libraries? If this is false, you can
+# ignore all the rest of the options in this file...
+HAVE_SHARED = false
+
+# uClibc has a native shared library loader for some architectures.
+BUILD_UCLIBC_LDSO=false
+
+# If you are using shared libraries, but do not want/have a native
+# uClibc shared library loader, please specify the name of your
+# system's shared library loader here...
+#SYSTEM_LDSO=/lib/ld-linux.so.2
+
+# When using shared libraries, this path is the location where the
+# shared library will be invoked. This value will be compiled into
+# every binary compiled with uClibc.
#
-# TARGET_PREFIX is the directory into which the target runtime
-# environment is installed. The target runtime environment is what one
-# would use for a embedded system where uclibc is the native libaray.
-# This will typically be a staging area for creating a root filesystem
-# for the target system, so the default is in the local directory.
-#
-# If you want to install to a temporary directory before copying files
-# to their final location, define DESTDIR during the install step,
-# i.e., 'make install DESTDIR=/home/foo/uclibc/_install'.
-PREFIX = /opt/uClinux
-DEVEL_PREFIX = $(PREFIX)/$(TARGET_ARCH)-elf
-TARGET_PREFIX = $(TOPDIR)/_install
+# BIG FAT WARNING:
+# If you do not have a shared library loader with the correct name
+# sitting in the directory this points to, your binaries will not run.
+#SHARED_LIB_LOADER_PATH=$(DEVEL_PREFIX)/lib
+
+# DEVEL_PREFIX is the directory into which the uClibc development
+# environment will be installed. The result will look something
+# like the following:
+# DEVEL_PREFIX/
+# bin/ <contains gcc, ld, etc>
+# lib/ <contains all runtime and static libs>
+# include/ <Where all the header files go>
+# This value is used by the 'make install' Makefile target. Since this
+# directory is compiled into the uclibc cross compiler spoofer, you
+# have to recompile if you change this value...
+DEVEL_PREFIX = /opt/uClinux/$(TARGET_ARCH)-elf
+
+# SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+# usr/bin/arch-uclibc-gcc, usr/bin/arch-uclibc-ld, etc. This is only
+# used by the 'make install' target, and is not compiled into anything.
+# This defaults to $DEVEL_PREFIX, but makers of .rpms and .debs will
+# want to set this to "/" instead.
+SYSTEM_DEVEL_PREFIX = /
+
+# If you want 'make install' to install everything under a temporary
+# directory, the define PREFIX during the install step,
+# i.e., 'make PREFIX=/var/tmp/uClibc install'.
+#PREFIX = $(TOPDIR)/_install
+PREFIX =
diff --git a/extra/Configs/Config.i386 b/extra/Configs/Config.i386
index 7eb9a0095..33ce45a4e 100644
--- a/extra/Configs/Config.i386
+++ b/extra/Configs/Config.i386
@@ -35,7 +35,7 @@ TARGET_ARCH=i386
# If you are running a cross compiler, you may want to set this
# to something more interesting...
NATIVE_CC = gcc
-CROSS = #i386-linux-
+CROSS = #$(TARGET_ARCH)-linux-
CC = $(CROSS)gcc
AR = $(CROSS)ar
LD = $(CROSS)ld
@@ -45,14 +45,11 @@ STRIPTOOL = $(CROSS)strip
# Set the following to `true' to make a debuggable build, and `false' for
# production builds.
-DODEBUG = true
+DODEBUG = false
# Compiler warnings you want to see
WARNINGS=-Wall
-# Enable support for shared libraries?
-HAVE_SHARED = true
-
# Note that the kernel source you use to compile with should be the same as the
# Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
# compatibility across kernel versions. So don't expect, for example, uClibc
@@ -139,30 +136,51 @@ INCLUDE_IPV6 = false
# If you want to compile the library as PIC code, turn this on.
DOPIC = false
-# PREFIX is the directory prefix that is applied to all installed
-# files. Typically, it is set to /usr or /usr/local, although it could
-# also be /opt/vendor_name_here/some/random/path/. The install_runtime
-# makefile target installs a few symbolic links based on PREFIX, not
-# DEVEL_PREFIX.
-#
-# DEVEL_PREFIX is the directory where the development environment will
-# be installed. The uClibc header files are installed into
-# $(DEVEL_PREFIX)/include, static libraries are installed into
-# $(DEVEL_PREFIX)/lib, etc. This directory is compiled into the uclibc
-# cross compiler spoofer. Generally, DEVEL_PREFIX should be set to
-# the same thing as $(PREFIX). DEVEL_PREFIX is used by the Makefile install
-# targets install_gcc, install_dev, and install_runtime.
+
+
+# Enable support for shared libraries? If this is false, you can
+# ignore all the rest of the options in this file...
+HAVE_SHARED = true
+
+# uClibc has a native shared library loader for some architectures.
+BUILD_UCLIBC_LDSO=true
+
+# If you are using shared libraries, but do not want/have a native
+# uClibc shared library loader, please specify the name of your
+# system's shared library loader here...
+#SYSTEM_LDSO=/lib/ld-linux.so.2
+
+# When using shared libraries, this path is the location where the
+# shared library will be invoked. This value will be compiled into
+# every binary compiled with uClibc.
#
-# TARGET_PREFIX is the directory into which the target runtime
-# environment is installed. The target runtime environment is what one
-# would use for a embedded system where uclibc is the native libaray.
-# This will typically be a staging area for creating a root filesystem
-# for the target system, so the default is in the local directory.
-#
-# If you want to install to a temporary directory before copying files
-# to their final location, define DESTDIR during the install step,
-# i.e., 'make install DESTDIR=/home/foo/uclibc/_install'.
-PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
-DEVEL_PREFIX = $(PREFIX)
-TARGET_PREFIX = /
+# BIG FAT WARNING:
+# If you do not have a shared library loader with the correct name
+# sitting in the directory this points to, your binaries will not run.
+SHARED_LIB_LOADER_PATH=$(DEVEL_PREFIX)/lib
+
+# DEVEL_PREFIX is the directory into which the uClibc development
+# environment will be installed. The result will look something
+# like the following:
+# DEVEL_PREFIX/
+# bin/ <contains gcc, ld, etc>
+# lib/ <contains all runtime and static libs>
+# include/ <Where all the header files go>
+# This value is used by the 'make install' Makefile target. Since this
+# directory is compiled into the uclibc cross compiler spoofer, you
+# have to recompile if you change this value...
+DEVEL_PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
+
+# SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+# usr/bin/arch-uclibc-gcc, usr/bin/arch-uclibc-ld, etc. This is only
+# used by the 'make install' target, and is not compiled into anything.
+# This defaults to $DEVEL_PREFIX, but makers of .rpms and .debs will
+# want to set this to "/" instead.
+SYSTEM_DEVEL_PREFIX = $(DEVEL_PREFIX)
+
+# If you want 'make install' to install everything under a temporary
+# directory, the define PREFIX during the install step,
+# i.e., 'make PREFIX=/var/tmp/uClibc install'.
+#PREFIX = $(TOPDIR)/_install
+PREFIX =
diff --git a/extra/Configs/Config.m68k b/extra/Configs/Config.m68k
index b9447b844..3168eb366 100644
--- a/extra/Configs/Config.m68k
+++ b/extra/Configs/Config.m68k
@@ -50,9 +50,6 @@ DODEBUG = false
# Compiler warnings you want to see
WARNINGS=-Wall
-# Enable support for shared libraries?
-HAVE_SHARED = false
-
# Note that the kernel source you use to compile with should be the same as the
# Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
# compatibility across kernel versions. So don't expect, for example, uClibc
@@ -153,30 +150,50 @@ ARCH_CFLAGS2 = -I$(KERNEL_SOURCE)/include
OPTIMIZATION = $(DEBUG_CFLAGS)
-# PREFIX is the directory prefix that is applied to all installed
-# files. Typically, it is set to /usr or /usr/local, although it could
-# also be /opt/vendor_name_here/some/random/path/. The install_runtime
-# makefile target installs a few symbolic links based on PREFIX, not
-# DEVEL_PREFIX.
-#
-# DEVEL_PREFIX is the directory where the development environment will
-# be installed. The uClibc header files are installed into
-# $(DEVEL_PREFIX)/include, static libraries are installed into
-# $(DEVEL_PREFIX)/lib, etc. This directory is compiled into the uclibc
-# cross compiler spoofer. Generally, DEVEL_PREFIX should be set to
-# the same thing as $(PREFIX). DEVEL_PREFIX is used by the Makefile install
-# targets install_gcc, install_dev, and install_runtime.
+
+# Enable support for shared libraries? If this is false, you can
+# ignore all the rest of the options in this file...
+HAVE_SHARED = false
+
+# uClibc has a native shared library loader for some architectures.
+BUILD_UCLIBC_LDSO=false
+
+# If you are using shared libraries, but do not want/have a native
+# uClibc shared library loader, please specify the name of your
+# system's shared library loader here...
+#SYSTEM_LDSO=/lib/ld-linux.so.2
+
+# When using shared libraries, this path is the location where the
+# shared library will be invoked. This value will be compiled into
+# every binary compiled with uClibc.
#
-# TARGET_PREFIX is the directory into which the target runtime
-# environment is installed. The target runtime environment is what one
-# would use for a embedded system where uclibc is the native libaray.
-# This will typically be a staging area for creating a root filesystem
-# for the target system, so the default is in the local directory.
-#
-# If you want to install to a temporary directory before copying files
-# to their final location, define DESTDIR during the install step,
-# i.e., 'make install DESTDIR=/home/foo/uclibc/_install'.
-PREFIX = /opt/uClinux
-DEVEL_PREFIX = $(PREFIX)/$(TARGET_ARCH)-elf
-TARGET_PREFIX = $(TOPDIR)/_install
+# BIG FAT WARNING:
+# If you do not have a shared library loader with the correct name
+# sitting in the directory this points to, your binaries will not run.
+#SHARED_LIB_LOADER_PATH=$(DEVEL_PREFIX)/lib
+
+# DEVEL_PREFIX is the directory into which the uClibc development
+# environment will be installed. The result will look something
+# like the following:
+# DEVEL_PREFIX/
+# bin/ <contains gcc, ld, etc>
+# lib/ <contains all runtime and static libs>
+# include/ <Where all the header files go>
+# This value is used by the 'make install' Makefile target. Since this
+# directory is compiled into the uclibc cross compiler spoofer, you
+# have to recompile if you change this value...
+DEVEL_PREFIX = /opt/uClinux/$(TARGET_ARCH)-elf
+
+# SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+# usr/bin/arch-uclibc-gcc, usr/bin/arch-uclibc-ld, etc. This is only
+# used by the 'make install' target, and is not compiled into anything.
+# This defaults to $DEVEL_PREFIX, but makers of .rpms and .debs will
+# want to set this to "/" instead.
+SYSTEM_DEVEL_PREFIX = /
+
+# If you want 'make install' to install everything under a temporary
+# directory, the define PREFIX during the install step,
+# i.e., 'make PREFIX=/var/tmp/uClibc install'.
+#PREFIX = $(TOPDIR)/_install
+PREFIX =
diff --git a/extra/Configs/Config.m68k.coff b/extra/Configs/Config.m68k.coff
index 541089407..8ae49475f 100644
--- a/extra/Configs/Config.m68k.coff
+++ b/extra/Configs/Config.m68k.coff
@@ -50,9 +50,6 @@ DODEBUG = false
# Compiler warnings you want to see
WARNINGS=-Wall
-# Enable support for shared libraries?
-HAVE_SHARED = false
-
# Note that the kernel source you use to compile with should be the same as the
# Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
# compatibility across kernel versions. So don't expect, for example, uClibc
@@ -155,30 +152,51 @@ OPTIMIZATION = $(DEBUG_CFLAGS)
# This is a COFF compiler (ick), so disable all the cool stuff
HAVE_ELF = false
-# PREFIX is the directory prefix that is applied to all installed
-# files. Typically, it is set to /usr or /usr/local, although it could
-# also be /opt/vendor_name_here/some/random/path/. The install_runtime
-# makefile target installs a few symbolic links based on PREFIX, not
-# DEVEL_PREFIX.
-#
-# DEVEL_PREFIX is the directory where the development environment will
-# be installed. The uClibc header files are installed into
-# $(DEVEL_PREFIX)/include, static libraries are installed into
-# $(DEVEL_PREFIX)/lib, etc. This directory is compiled into the uclibc
-# cross compiler spoofer. Generally, DEVEL_PREFIX should be set to
-# the same thing as $(PREFIX). DEVEL_PREFIX is used by the Makefile install
-# targets install_gcc, install_dev, and install_runtime.
+
+
+# Enable support for shared libraries? If this is false, you can
+# ignore all the rest of the options in this file...
+HAVE_SHARED = false
+
+# uClibc has a native shared library loader for some architectures.
+BUILD_UCLIBC_LDSO=false
+
+# If you are using shared libraries, but do not want/have a native
+# uClibc shared library loader, please specify the name of your
+# system's shared library loader here...
+#SYSTEM_LDSO=/lib/ld-linux.so.2
+
+# When using shared libraries, this path is the location where the
+# shared library will be invoked. This value will be compiled into
+# every binary compiled with uClibc.
#
-# TARGET_PREFIX is the directory into which the target runtime
-# environment is installed. The target runtime environment is what one
-# would use for a embedded system where uclibc is the native libaray.
-# This will typically be a staging area for creating a root filesystem
-# for the target system, so the default is in the local directory.
-#
-# If you want to install to a temporary directory before copying files
-# to their final location, define DESTDIR during the install step,
-# i.e., 'make install DESTDIR=/home/foo/uclibc/_install'.
-PREFIX = /opt/uClinux
-DEVEL_PREFIX = $(PREFIX)/$(TARGET_ARCH)-coff
-TARGET_PREFIX = $(TOPDIR)/_install
+# BIG FAT WARNING:
+# If you do not have a shared library loader with the correct name
+# sitting in the directory this points to, your binaries will not run.
+#SHARED_LIB_LOADER_PATH=$(DEVEL_PREFIX)/lib
+
+# DEVEL_PREFIX is the directory into which the uClibc development
+# environment will be installed. The result will look something
+# like the following:
+# DEVEL_PREFIX/
+# bin/ <contains gcc, ld, etc>
+# lib/ <contains all runtime and static libs>
+# include/ <Where all the header files go>
+# This value is used by the 'make install' Makefile target. Since this
+# directory is compiled into the uclibc cross compiler spoofer, you
+# have to recompile if you change this value...
+DEVEL_PREFIX = /opt/uClinux/$(TARGET_ARCH)-coff
+
+# SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+# usr/bin/arch-uclibc-gcc, usr/bin/arch-uclibc-ld, etc. This is only
+# used by the 'make install' target, and is not compiled into anything.
+# This defaults to $DEVEL_PREFIX, but makers of .rpms and .debs will
+# want to set this to "/" instead.
+SYSTEM_DEVEL_PREFIX = /
+
+# If you want 'make install' to install everything under a temporary
+# directory, the define PREFIX during the install step,
+# i.e., 'make PREFIX=/var/tmp/uClibc install'.
+#PREFIX = $(TOPDIR)/_install
+PREFIX =
diff --git a/extra/Configs/Config.mips b/extra/Configs/Config.mips
index 4f8a38c7f..8e3b4ce36 100644
--- a/extra/Configs/Config.mips
+++ b/extra/Configs/Config.mips
@@ -50,9 +50,6 @@ DODEBUG = false
# Compiler warnings you want to see
WARNINGS=-Wall
-# Enable support for shared libraries?
-HAVE_SHARED = false
-
# Note that the kernel source you use to compile with should be the same as the
# Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
# compatibility across kernel versions. So don't expect, for example, uClibc
@@ -111,8 +108,8 @@ LOCALE_DIR = "/usr/share/uClibc-locale/"
# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
# It is actually smaller than "malloc", at least on i386. Right now, it
# only works on i386 (and maybe m68k) because it needs sbrk.
-#MALLOC = malloc-simple
-MALLOC = malloc
+MALLOC = malloc-simple
+#MALLOC = malloc
#MALLOC = malloc-930716
# If you want to collect common syscall code into one function, set to this to
@@ -139,30 +136,51 @@ INCLUDE_IPV6 = false
# If you want to compile the library as PIC code, turn this on.
DOPIC = false
-# PREFIX is the directory prefix that is applied to all installed
-# files. Typically, it is set to /usr or /usr/local, although it could
-# also be /opt/vendor_name_here/some/random/path/. The install_runtime
-# makefile target installs a few symbolic links based on PREFIX, not
-# DEVEL_PREFIX.
-#
-# DEVEL_PREFIX is the directory where the development environment will
-# be installed. The uClibc header files are installed into
-# $(DEVEL_PREFIX)/include, static libraries are installed into
-# $(DEVEL_PREFIX)/lib, etc. This directory is compiled into the uclibc
-# cross compiler spoofer. Generally, DEVEL_PREFIX should be set to
-# the same thing as $(PREFIX). DEVEL_PREFIX is used by the Makefile install
-# targets install_gcc, install_dev, and install_runtime.
+
+
+# Enable support for shared libraries? If this is false, you can
+# ignore all the rest of the options in this file...
+HAVE_SHARED = false
+
+# uClibc has a native shared library loader for some architectures.
+BUILD_UCLIBC_LDSO=false
+
+# If you are using shared libraries, but do not want/have a native
+# uClibc shared library loader, please specify the name of your
+# system's shared library loader here...
+#SYSTEM_LDSO=/lib/ld-linux.so.2
+
+# When using shared libraries, this path is the location where the
+# shared library will be invoked. This value will be compiled into
+# every binary compiled with uClibc.
#
-# TARGET_PREFIX is the directory into which the target runtime
-# environment is installed. The target runtime environment is what one
-# would use for a embedded system where uclibc is the native libaray.
-# This will typically be a staging area for creating a root filesystem
-# for the target system, so the default is in the local directory.
-#
-# If you want to install to a temporary directory before copying files
-# to their final location, define DESTDIR during the install step,
-# i.e., 'make install DESTDIR=/home/foo/uclibc/_install'.
-PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
-DEVEL_PREFIX = $(PREFIX)
-TARGET_PREFIX = /
+# BIG FAT WARNING:
+# If you do not have a shared library loader with the correct name
+# sitting in the directory this points to, your binaries will not run.
+#SHARED_LIB_LOADER_PATH=$(DEVEL_PREFIX)/lib
+
+# DEVEL_PREFIX is the directory into which the uClibc development
+# environment will be installed. The result will look something
+# like the following:
+# DEVEL_PREFIX/
+# bin/ <contains gcc, ld, etc>
+# lib/ <contains all runtime and static libs>
+# include/ <Where all the header files go>
+# This value is used by the 'make install' Makefile target. Since this
+# directory is compiled into the uclibc cross compiler spoofer, you
+# have to recompile if you change this value...
+DEVEL_PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
+
+# SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+# usr/bin/arch-uclibc-gcc, usr/bin/arch-uclibc-ld, etc. This is only
+# used by the 'make install' target, and is not compiled into anything.
+# This defaults to $DEVEL_PREFIX, but makers of .rpms and .debs will
+# want to set this to "/" instead.
+SYSTEM_DEVEL_PREFIX = $(DEVEL_PREFIX)
+
+# If you want 'make install' to install everything under a temporary
+# directory, the define PREFIX during the install step,
+# i.e., 'make PREFIX=/var/tmp/uClibc install'.
+#PREFIX = $(TOPDIR)/_install
+PREFIX =
diff --git a/extra/Configs/Config.mipsel b/extra/Configs/Config.mipsel
index 4f8a38c7f..8e3b4ce36 100644
--- a/extra/Configs/Config.mipsel
+++ b/extra/Configs/Config.mipsel
@@ -50,9 +50,6 @@ DODEBUG = false
# Compiler warnings you want to see
WARNINGS=-Wall
-# Enable support for shared libraries?
-HAVE_SHARED = false
-
# Note that the kernel source you use to compile with should be the same as the
# Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
# compatibility across kernel versions. So don't expect, for example, uClibc
@@ -111,8 +108,8 @@ LOCALE_DIR = "/usr/share/uClibc-locale/"
# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
# It is actually smaller than "malloc", at least on i386. Right now, it
# only works on i386 (and maybe m68k) because it needs sbrk.
-#MALLOC = malloc-simple
-MALLOC = malloc
+MALLOC = malloc-simple
+#MALLOC = malloc
#MALLOC = malloc-930716
# If you want to collect common syscall code into one function, set to this to
@@ -139,30 +136,51 @@ INCLUDE_IPV6 = false
# If you want to compile the library as PIC code, turn this on.
DOPIC = false
-# PREFIX is the directory prefix that is applied to all installed
-# files. Typically, it is set to /usr or /usr/local, although it could
-# also be /opt/vendor_name_here/some/random/path/. The install_runtime
-# makefile target installs a few symbolic links based on PREFIX, not
-# DEVEL_PREFIX.
-#
-# DEVEL_PREFIX is the directory where the development environment will
-# be installed. The uClibc header files are installed into
-# $(DEVEL_PREFIX)/include, static libraries are installed into
-# $(DEVEL_PREFIX)/lib, etc. This directory is compiled into the uclibc
-# cross compiler spoofer. Generally, DEVEL_PREFIX should be set to
-# the same thing as $(PREFIX). DEVEL_PREFIX is used by the Makefile install
-# targets install_gcc, install_dev, and install_runtime.
+
+
+# Enable support for shared libraries? If this is false, you can
+# ignore all the rest of the options in this file...
+HAVE_SHARED = false
+
+# uClibc has a native shared library loader for some architectures.
+BUILD_UCLIBC_LDSO=false
+
+# If you are using shared libraries, but do not want/have a native
+# uClibc shared library loader, please specify the name of your
+# system's shared library loader here...
+#SYSTEM_LDSO=/lib/ld-linux.so.2
+
+# When using shared libraries, this path is the location where the
+# shared library will be invoked. This value will be compiled into
+# every binary compiled with uClibc.
#
-# TARGET_PREFIX is the directory into which the target runtime
-# environment is installed. The target runtime environment is what one
-# would use for a embedded system where uclibc is the native libaray.
-# This will typically be a staging area for creating a root filesystem
-# for the target system, so the default is in the local directory.
-#
-# If you want to install to a temporary directory before copying files
-# to their final location, define DESTDIR during the install step,
-# i.e., 'make install DESTDIR=/home/foo/uclibc/_install'.
-PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
-DEVEL_PREFIX = $(PREFIX)
-TARGET_PREFIX = /
+# BIG FAT WARNING:
+# If you do not have a shared library loader with the correct name
+# sitting in the directory this points to, your binaries will not run.
+#SHARED_LIB_LOADER_PATH=$(DEVEL_PREFIX)/lib
+
+# DEVEL_PREFIX is the directory into which the uClibc development
+# environment will be installed. The result will look something
+# like the following:
+# DEVEL_PREFIX/
+# bin/ <contains gcc, ld, etc>
+# lib/ <contains all runtime and static libs>
+# include/ <Where all the header files go>
+# This value is used by the 'make install' Makefile target. Since this
+# directory is compiled into the uclibc cross compiler spoofer, you
+# have to recompile if you change this value...
+DEVEL_PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
+
+# SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+# usr/bin/arch-uclibc-gcc, usr/bin/arch-uclibc-ld, etc. This is only
+# used by the 'make install' target, and is not compiled into anything.
+# This defaults to $DEVEL_PREFIX, but makers of .rpms and .debs will
+# want to set this to "/" instead.
+SYSTEM_DEVEL_PREFIX = $(DEVEL_PREFIX)
+
+# If you want 'make install' to install everything under a temporary
+# directory, the define PREFIX during the install step,
+# i.e., 'make PREFIX=/var/tmp/uClibc install'.
+#PREFIX = $(TOPDIR)/_install
+PREFIX =
diff --git a/extra/Configs/Config.powerpc b/extra/Configs/Config.powerpc
index 2e2aa692e..c36b82703 100644
--- a/extra/Configs/Config.powerpc
+++ b/extra/Configs/Config.powerpc
@@ -50,9 +50,6 @@ DODEBUG = false
# Compiler warnings you want to see
WARNINGS=-Wall
-# Enable support for shared libraries?
-HAVE_SHARED = true
-
# Note that the kernel source you use to compile with should be the same as the
# Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
# compatibility across kernel versions. So don't expect, for example, uClibc
@@ -112,8 +109,8 @@ LOCALE_DIR = "/usr/share/uClibc-locale/"
# It is actually smaller than "malloc", at least on i386. Right now, it
# only works on i386 (and maybe m68k) because it needs sbrk.
#MALLOC = malloc-simple
-MALLOC = malloc
-#MALLOC = malloc-930716
+#MALLOC = malloc
+MALLOC = malloc-930716
# If you want to collect common syscall code into one function, set to this to
# `true'. Set it to false otherwise.
@@ -139,30 +136,54 @@ INCLUDE_IPV6 = false
# If you want to compile the library as PIC code, turn this on.
DOPIC = false
-# PREFIX is the directory prefix that is applied to all installed
-# files. Typically, it is set to /usr or /usr/local, although it could
-# also be /opt/vendor_name_here/some/random/path/. The install_runtime
-# makefile target installs a few symbolic links based on PREFIX, not
-# DEVEL_PREFIX.
-#
-# DEVEL_PREFIX is the directory where the development environment will
-# be installed. The uClibc header files are installed into
-# $(DEVEL_PREFIX)/include, static libraries are installed into
-# $(DEVEL_PREFIX)/lib, etc. This directory is compiled into the uclibc
-# cross compiler spoofer. Generally, DEVEL_PREFIX should be set to
-# the same thing as $(PREFIX). DEVEL_PREFIX is used by the Makefile install
-# targets install_gcc, install_dev, and install_runtime.
+
+
+# Enable support for shared libraries? If this is false, you can
+# ignore all the rest of the options in this file...
+HAVE_SHARED = true
+
+# uClibc has a native shared library loader for some architectures.
+BUILD_UCLIBC_LDSO=false
+
+# If you are using shared libraries, but do not want/have a native
+# uClibc shared library loader, please specify the name of your
+# system's shared library loader here...
+#SYSTEM_LDSO=/lib/ld-linux.so.2
+SYSTEM_LDSO=$(shell for each in `$(CC) -print-search-dirs| \
+ grep ^libraries| sed -e 's/^libraries: //' -e 's/:/ /g'`;\
+ do ls $$each/ld.so.* 2>/dev/null;done)
+
+# When using shared libraries, this path is the location where the
+# shared library will be invoked. This value will be compiled into
+# every binary compiled with uClibc.
#
-# TARGET_PREFIX is the directory into which the target runtime
-# environment is installed. The target runtime environment is what one
-# would use for a embedded system where uclibc is the native libaray.
-# This will typically be a staging area for creating a root filesystem
-# for the target system, so the default is in the local directory.
-#
-# If you want to install to a temporary directory before copying files
-# to their final location, define DESTDIR during the install step,
-# i.e., 'make install DESTDIR=/home/foo/uclibc/_install'.
-PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
-DEVEL_PREFIX = $(PREFIX)
-TARGET_PREFIX = $(TOPDIR)/_install
+# BIG FAT WARNING:
+# If you do not have a shared library loader with the correct name
+# sitting in the directory this points to, your binaries will not run.
+SHARED_LIB_LOADER_PATH=$(DEVEL_PREFIX)/lib
+
+# DEVEL_PREFIX is the directory into which the uClibc development
+# environment will be installed. The result will look something
+# like the following:
+# DEVEL_PREFIX/
+# bin/ <contains gcc, ld, etc>
+# lib/ <contains all runtime and static libs>
+# include/ <Where all the header files go>
+# This value is used by the 'make install' Makefile target. Since this
+# directory is compiled into the uclibc cross compiler spoofer, you
+# have to recompile if you change this value...
+DEVEL_PREFIX = /usr/$(TARGET_ARCH)-linux-uclibc
+
+# SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+# usr/bin/arch-uclibc-gcc, usr/bin/arch-uclibc-ld, etc. This is only
+# used by the 'make install' target, and is not compiled into anything.
+# This defaults to $DEVEL_PREFIX, but makers of .rpms and .debs will
+# want to set this to "/" instead.
+SYSTEM_DEVEL_PREFIX = $(DEVEL_PREFIX)
+
+# If you want 'make install' to install everything under a temporary
+# directory, the define PREFIX during the install step,
+# i.e., 'make PREFIX=/var/tmp/uClibc install'.
+#PREFIX = $(TOPDIR)/_install
+PREFIX =
diff --git a/extra/Configs/Config.sh b/extra/Configs/Config.sh
index dc8cb0c35..e0dfb9e8f 100644
--- a/extra/Configs/Config.sh
+++ b/extra/Configs/Config.sh
@@ -51,9 +51,6 @@ DODEBUG = false
# Compiler warnings you want to see
WARNINGS=-Wall
-# Enable support for shared libraries?
-HAVE_SHARED = false
-
# Note that the kernel source you use to compile with should be the same as the
# Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
# compatibility across kernel versions. So don't expect, for example, uClibc
@@ -160,30 +157,52 @@ INCLUDE_IPV6 = false
# If you want to compile the library as PIC code, turn this on.
DOPIC = false
-# PREFIX is the directory prefix that is applied to all installed
-# files. Typically, it is set to /usr or /usr/local, although it could
-# also be /opt/vendor_name_here/some/random/path/. The install_runtime
-# makefile target installs a few symbolic links based on PREFIX, not
-# DEVEL_PREFIX.
-#
-# DEVEL_PREFIX is the directory where the development environment will
-# be installed. The uClibc header files are installed into
-# $(DEVEL_PREFIX)/include, static libraries are installed into
-# $(DEVEL_PREFIX)/lib, etc. This directory is compiled into the uclibc
-# cross compiler spoofer. Generally, DEVEL_PREFIX should be set to
-# the same thing as $(PREFIX). DEVEL_PREFIX is used by the Makefile install
-# targets install_gcc, install_dev, and install_runtime.
+
+
+# Enable support for shared libraries? If this is false, you can
+# ignore all the rest of the options in this file...
+HAVE_SHARED = false
+
+# uClibc has a native shared library loader for some architectures.
+BUILD_UCLIBC_LDSO=false
+
+# If you are using shared libraries, but do not want/have a native
+# uClibc shared library loader, please specify the name of your
+# system's shared library loader here...
+#SYSTEM_LDSO=/lib/ld-linux.so.2
+
+# When using shared libraries, this path is the location where the
+# shared library will be invoked. This value will be compiled into
+# every binary compiled with uClibc.
#
-# TARGET_PREFIX is the directory into which the target runtime
-# environment is installed. The target runtime environment is what one
-# would use for a embedded system where uclibc is the native libaray.
-# This will typically be a staging area for creating a root filesystem
-# for the target system, so the default is in the local directory.
-#
-# If you want to install to a temporary directory before copying files
-# to their final location, define DESTDIR during the install step,
-# i.e., 'make install DESTDIR=/home/foo/uclibc/_install'.
-PREFIX = /opt/uClinux
-DEVEL_PREFIX = $(PREFIX)/$(TARGET_ARCH)-elf
-TARGET_PREFIX = $(TOPDIR)/_install
+# BIG FAT WARNING:
+# If you do not have a shared library loader with the correct name
+# sitting in the directory this points to, your binaries will not run.
+#SHARED_LIB_LOADER_PATH=$(DEVEL_PREFIX)/lib
+
+# DEVEL_PREFIX is the directory into which the uClibc development
+# environment will be installed. The result will look something
+# like the following:
+# DEVEL_PREFIX/
+# bin/ <contains gcc, ld, etc>
+# lib/ <contains all runtime and static libs>
+# include/ <Where all the header files go>
+# This value is used by the 'make install' Makefile target. Since this
+# directory is compiled into the uclibc cross compiler spoofer, you
+# have to recompile if you change this value...
+DEVEL_PREFIX = /opt/uClinux/$(TARGET_ARCH)-elf
+
+# SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+# usr/bin/arch-uclibc-gcc, usr/bin/arch-uclibc-ld, etc. This is only
+# used by the 'make install' target, and is not compiled into anything.
+# This defaults to $DEVEL_PREFIX, but makers of .rpms and .debs will
+# want to set this to "/" instead.
+SYSTEM_DEVEL_PREFIX = /
+
+# If you want 'make install' to install everything under a temporary
+# directory, the define PREFIX during the install step,
+# i.e., 'make PREFIX=/var/tmp/uClibc install'.
+#PREFIX = $(TOPDIR)/_install
+PREFIX =
+
diff --git a/extra/gcc-uClibc/Makefile b/extra/gcc-uClibc/Makefile
index fc7b3dd59..3b51c104c 100644
--- a/extra/gcc-uClibc/Makefile
+++ b/extra/gcc-uClibc/Makefile
@@ -32,19 +32,18 @@ ld-uClibc:
chmod a+x $(TARGET_ARCH)-uclibc-ld
install: all
- install -d $(DESTDIR)$(DEVEL_PREFIX)/bin;
- install -d $(DESTDIR)$(DEVEL_PREFIX)/usr/bin;
- ln -fs ../include $(DESTDIR)$(DEVEL_PREFIX)/usr/include
- install -m 755 $(TARGET_ARCH)-uclibc-gcc $(DESTDIR)$(DEVEL_PREFIX)/usr/bin/
- install -m 755 $(TARGET_ARCH)-uclibc-ld $(DESTDIR)$(DEVEL_PREFIX)/usr/bin/
- ln -fs $(TARGET_ARCH)-uclibc-gcc $(DESTDIR)$(DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-cc
- ln -fs $(DESTDIR)$(DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-gcc $(DESTDIR)$(DEVEL_PREFIX)/bin/gcc
- ln -fs $(DESTDIR)$(DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-gcc $(DESTDIR)$(DEVEL_PREFIX)/bin/cc
- ln -fs $(DESTDIR)$(DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-ld $(DESTDIR)$(DEVEL_PREFIX)/bin/ld
+ install -d $(PREFIX)$(DEVEL_PREFIX)/bin;
+ install -d $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/usr/bin;
+ install -m 755 $(TARGET_ARCH)-uclibc-gcc $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/usr/bin/
+ install -m 755 $(TARGET_ARCH)-uclibc-ld $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/usr/bin/
+ ln -fs $(TARGET_ARCH)-uclibc-gcc $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-cc
+ ln -fs $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-gcc $(PREFIX)$(DEVEL_PREFIX)/bin/gcc
+ ln -fs $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-gcc $(PREFIX)$(DEVEL_PREFIX)/bin/cc
+ ln -fs $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-ld $(PREFIX)$(DEVEL_PREFIX)/bin/ld
for app in addr2line ar as cpp gasp nm objcopy \
objdump ranlib size strings strip; do \
- ln -fs `which $(CROSS)$${app}` $(DESTDIR)$(DEVEL_PREFIX)/bin/$${app}; \
- ln -fs `which $(CROSS)$${app}` $(DESTDIR)$(DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-$${app}; \
+ ln -fs `which $(CROSS)$${app}` $(PREFIX)$(DEVEL_PREFIX)/bin/$${app}; \
+ ln -fs `which $(CROSS)$${app}` $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/usr/bin/$(TARGET_ARCH)-uclibc-$${app}; \
done
clean: