summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <mail@waldemar-brodkorb.de>2012-10-05 14:49:13 +0200
committerWaldemar Brodkorb <mail@waldemar-brodkorb.de>2012-10-05 14:49:13 +0200
commitf3db9f0c592ad982d6702ce8314888d97e2de68b (patch)
tree221a3d6adf72e19928c916ece41040ca46d95441
parent6c6f588279720346ef20948130884437b0cd9e6d (diff)
make libgcc static for busybox, make librt separate package, remove dependency to libtirpc, disable inetd, add preliminary multilib support (not working right now),enable 32/64 bit kernel support for x86_64
-rw-r--r--mk/build.mk10
-rw-r--r--mk/modules.mk2
-rw-r--r--package/busybox/Config.in.manual2
-rw-r--r--package/busybox/Makefile8
-rw-r--r--package/busybox/config/networking/Config.in4
-rw-r--r--package/eglibc/Makefile34
-rw-r--r--package/glibc/Makefile18
-rw-r--r--package/libgcc/Makefile6
-rw-r--r--package/libpthread/Makefile4
-rw-r--r--package/librt/Makefile47
-rw-r--r--package/librt/files/libpthread.postinst4
-rw-r--r--package/librt/files/libpthread.so.arm5
-rw-r--r--package/librt/files/libpthread.so.x865
-rw-r--r--package/librt/files/libpthread.so.x86_645
-rw-r--r--package/uclibc/Makefile24
-rw-r--r--rules.mk1
-rw-r--r--target/Makefile2
-rw-r--r--target/config/Config.in110
-rw-r--r--target/linux/config/Config.in.debug4
-rw-r--r--target/linux/config/Config.in.leds4
-rw-r--r--target/packages/pkg-available/laptop6
-rw-r--r--target/x86_64/kernel.config1040
-rw-r--r--target/x86_64/kernel64.config548
-rw-r--r--toolchain/binutils/Makefile2
-rw-r--r--toolchain/gcc/Makefile9
-rw-r--r--toolchain/gcc/patches/4.7.2/no-lib64.patch92
-rw-r--r--toolchain/uClibc/Makefile28
27 files changed, 1242 insertions, 782 deletions
diff --git a/mk/build.mk b/mk/build.mk
index 2f576ad41..0ad4ea788 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -222,10 +222,16 @@ switch:
fi \
fi
+ifeq (${ADK_TARGET_KERNEL64},y)
+KERNEL_CFG:=kernel64.config
+else
+KERNEL_CFG:=kernel.config
+endif
+
kernelconfig:
- cp $(TOPDIR)/target/$(ADK_TARGET_ARCH)/kernel.config $(BUILD_DIR)/linux/.config
+ cp $(TOPDIR)/target/$(ADK_TARGET_ARCH)/${KERNEL_CFG} $(BUILD_DIR)/linux/.config
${KERNEL_MAKE_ENV} ${MAKE} ARCH=$(ARCH) ${KERNEL_MAKE_OPTS} -C $(BUILD_DIR)/linux menuconfig
- cp $(BUILD_DIR)/linux/.config $(TOPDIR)/target/$(ADK_TARGET_ARCH)/kernel.config
+ cp $(BUILD_DIR)/linux/.config $(TOPDIR)/target/$(ADK_TARGET_ARCH)/${KERNEL_CFG}
# create a new package from package/.template
newpackage:
diff --git a/mk/modules.mk b/mk/modules.mk
index 1ca8c072e..1d882d0c2 100644
--- a/mk/modules.mk
+++ b/mk/modules.mk
@@ -79,7 +79,7 @@ $(eval $(call KMOD_template,MAC80211,mac80211,\
$(eval $(call KMOD_template,ATH5K,ath5k,\
$(MODULES_DIR)/kernel/drivers/net/wireless/ath/ath \
$(MODULES_DIR)/kernel/drivers/net/wireless/ath/ath5k/ath5k \
-,20))
+,20, kmod-leds-class))
$(eval $(call KMOD_template,P54_COMMON,p54-common,\
$(MODULES_DIR)/kernel/drivers/net/wireless/p54/p54common \
diff --git a/package/busybox/Config.in.manual b/package/busybox/Config.in.manual
index a26169686..ffba6e89b 100644
--- a/package/busybox/Config.in.manual
+++ b/package/busybox/Config.in.manual
@@ -8,8 +8,6 @@ config ADK_PACKAGE_BUSYBOX
boolean
select ADK_COMPILE_BUSYBOX
default y if !ADK_TOOLCHAIN_ONLY
- select ADK_PACKAGE_LIBTIRPC
- select ADK_PACKAGE_LIBPTHREAD
help
Core utilities for embedded Linux systems
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index 6b40bf082..34b274d96 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -9,7 +9,7 @@ PKG_RELEASE:= 1
PKG_MD5SUM:= e025414bc6cd79579cc7a32a45d3ae1c
PKG_DESCR:= Core utilities for embedded systems
PKG_SECTION:= base
-PKG_BUILDDEP:= libtirpc
+#PKG_BUILDDEP:= libtirpc
PKG_URL:= http://www.busybox.net/
PKG_SITES:= http://www.busybox.net/downloads/
@@ -37,11 +37,11 @@ INSTALL_STYLE:= manual
BB_MAKE_FLAGS:= V=1 IPKG_ARCH="${CPU_ARCH}" ARCH="${ARCH}" GCC_HONOUR_COPTS=s \
HOSTCC="${CC_FOR_BUILD}" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
- -C ${WRKBUILD}
+ -C ${WRKBUILD}
ifneq (${ADK_NATIVE},y)
-BB_MAKE_FLAGS+= CROSS_COMPILE="$(TARGET_CROSS)" EXTRA_LDFLAGS='-pthread -ltirpc' EXTRA_CPPFLAGS="-I$(STAGING_DIR)/usr/include/tirpc"
+BB_MAKE_FLAGS+= CROSS_COMPILE="$(TARGET_CROSS)" EXTRA_LDFLAGS='-static-libgcc'
else
-BB_MAKE_FLAGS+= EXTRA_CPPFLAGS="-I/usr/include/tirpc"
+BB_MAKE_FLAGS+= EXTRA_LDFLAGS="-static-libgcc"
endif
# XXX: Although this looks like all new symbols are enabled when 'make oldconfig' runs, they're not.
diff --git a/package/busybox/config/networking/Config.in b/package/busybox/config/networking/Config.in
index 18355025f..233ee996d 100644
--- a/package/busybox/config/networking/Config.in
+++ b/package/busybox/config/networking/Config.in
@@ -551,7 +551,7 @@ config BUSYBOX_FEATURE_IFUPDOWN_EXTERNAL_DHCP
config BUSYBOX_INETD
bool "inetd"
- default y
+ default n
select BUSYBOX_FEATURE_SYSLOG
help
Internet superserver daemon
@@ -593,7 +593,7 @@ config BUSYBOX_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
config BUSYBOX_FEATURE_INETD_RPC
bool "Support RPC services"
- default y
+ default n
depends on BUSYBOX_INETD
select BUSYBOX_FEATURE_HAVE_RPC
help
diff --git a/package/eglibc/Makefile b/package/eglibc/Makefile
index 60dcb25d1..0ea35d935 100644
--- a/package/eglibc/Makefile
+++ b/package/eglibc/Makefile
@@ -53,31 +53,15 @@ ifeq ($(ADK_LOCALES),y)
${INSTALL_DIR} $(IDIR_EGLIBC)/usr/bin
$(CP) $(STAGING_TARGET_DIR)/usr/bin/locale $(IDIR_EGLIBC)/usr/bin
endif
- ${INSTALL_DIR} $(IDIR_EGLIBC)/lib $(IDIR_EGLIBC)/etc \
+ ${INSTALL_DIR} $(IDIR_EGLIBC)/$(ADK_TARGET_LIBC_PATH) $(IDIR_EGLIBC)/etc \
$(IDIR_EGLIBC)/usr/lib $(IDIR_EGLIBC)/usr/bin
- #cd ${STAGING_TARGET_DIR} && for f in UTC ${ADK_RUNTIME_TIMEZONE}; do \
- # test -s usr/share/zoneinfo/"$$f" || continue; \
- # echo usr/share/zoneinfo/"$$f" | \
- # ${TOOLS_DIR}/cpio -pdu ${IDIR_EGLIBC}/; \
- #done
- #tz=; cd ${IDIR_EGLIBC}/usr/share/zoneinfo || exit 1; \
- # for f in UTC ${ADK_RUNTIME_TIMEZONE}; do \
- # test -s "$$f" || continue; \
- # tz=$$f; \
- #done; if test x"$$tz" = x""; then \
- # echo >&2 Error during timezone installation; \
- # exit 1; \
- #else \
- # ln -sf "../usr/share/zoneinfo/$$tz" \
- # ${IDIR_EGLIBC}/etc/localtime; \
- #fi
ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y)
- $(CP) $(STAGING_TARGET_DIR)/lib/libssp.so* $(IDIR_EGLIBC)/lib
+ $(CP) $(STAGING_TARGET_DIR)/lib/libssp.so* $(IDIR_EGLIBC)/$(ADK_TARGET_LIBC_PATH)
endif
- $(CP) $(STAGING_TARGET_DIR)/lib/ld* $(IDIR_EGLIBC)/lib
- -for file in libc libcrypt libdl libm libresolv librt libutil libnsl libnss_dns libnss_files; do \
- $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_EGLIBC)/lib; \
- $(CP) $(STAGING_TARGET_DIR)/lib/$$file-$(PKG_VERSION).so $(IDIR_EGLIBC)/lib; \
+ $(CP) $(STAGING_TARGET_DIR)/lib/ld* $(IDIR_EGLIBC)/$(ADK_TARGET_LIBC_PATH)
+ -for file in libc libcrypt libdl libm libresolv libutil libnsl libnss_dns libnss_files; do \
+ $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_EGLIBC)/$(ADK_TARGET_LIBC_PATH); \
+ $(CP) $(STAGING_TARGET_DIR)/lib/$$file-$(PKG_VERSION).so $(IDIR_EGLIBC)/$(ADK_TARGET_LIBC_PATH); \
done
${INSTALL_DATA} ${STAGING_TARGET_DIR}/etc/gai.conf ${IDIR_EGLIBC}/etc
${INSTALL_DATA} ${STAGING_TARGET_DIR}/etc/nscd.conf ${IDIR_EGLIBC}/etc
@@ -89,7 +73,7 @@ eglibc-static-install:
$(CP) $(STAGING_TARGET_DIR)/usr/lib/libc.a $(IDIR_EGLIBC_STATIC)/usr/lib
eglibc-dev-install:
- ${INSTALL_DIR} $(IDIR_EGLIBC_DEV)/lib $(IDIR_EGLIBC_DEV)/usr/lib
+ ${INSTALL_DIR} $(IDIR_EGLIBC_DEV)/$(ADK_TARGET_LIBC_PATH) $(IDIR_EGLIBC_DEV)/usr/lib
# install linker script
-cp ./files/libc.so.$(CPU_ARCH) $(IDIR_EGLIBC_DEV)/usr/lib/libc.so
ifeq ($(ADK_TARGET_ABI_O32),y)
@@ -103,8 +87,8 @@ ifeq ($(ADK_TARGET_ABI_N64),y)
endif
${CP} ${STAGING_TARGET_DIR}/usr/lib/crt* ${IDIR_EGLIBC_DEV}/usr/lib
${CP} ${STAGING_TARGET_DIR}/usr/lib/libc_nonshared.a ${IDIR_EGLIBC_DEV}/usr/lib
- -for file in libcrypt libdl libm libresolv librt libutil libnsl; do \
- cd $(IDIR_EGLIBC_DEV)/lib/; ln -sf $$file-$(PKG_VERSION).so $$file.so; \
+ -for file in libcrypt libdl libm libresolv libutil libnsl; do \
+ cd $(IDIR_EGLIBC_DEV)/$(ADK_TARGET_LIBC_PATH)/; ln -sf $$file-$(PKG_VERSION).so $$file.so; \
done
# header package
$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_VERSION)-$(KERNEL_RELEASE)/linux-$(KERNEL_VERSION) \
diff --git a/package/glibc/Makefile b/package/glibc/Makefile
index 91ebc1f77..9655288a6 100644
--- a/package/glibc/Makefile
+++ b/package/glibc/Makefile
@@ -31,28 +31,28 @@ INSTALL_STYLE:= manual
# compile nothing, glibc is already build in toolchain directory
do-install:
- ${INSTALL_DIR} ${IDIR_GLIBC}/lib ${IDIR_GLIBC}/etc
+ ${INSTALL_DIR} ${IDIR_GLIBC}/$(ADK_TARGET_LIBC_PATH) ${IDIR_GLIBC}/etc
${CP} ${STAGING_TARGET_DIR}/etc/gai.conf ${IDIR_GLIBC}/etc
${CP} ${STAGING_TARGET_DIR}/etc/nscd.conf ${IDIR_GLIBC}/etc
${CP} ${STAGING_TARGET_DIR}/etc/nsswitch.conf ${IDIR_GLIBC}/etc
ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y)
- $(CP) $(STAGING_TARGET_DIR)/lib/libssp.so* $(IDIR_GLIBC)/lib
+ $(CP) $(STAGING_TARGET_DIR)/lib/libssp.so* $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH)
endif
- $(CP) $(STAGING_TARGET_DIR)/lib/ld*.so* $(IDIR_GLIBC)/lib
- for file in libc libcrypt libdl libm libnsl libresolv librt libutil libnss_compat libnss_dns libnss_files; do \
- $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_GLIBC)/lib; \
- $(CP) $(STAGING_TARGET_DIR)/lib/$$file-$(PKG_VER).so $(IDIR_GLIBC)/lib; \
+ $(CP) $(STAGING_TARGET_DIR)/lib/ld*.so* $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH)
+ for file in libc libcrypt libdl libm libnsl libresolv libutil libnss_compat libnss_dns libnss_files; do \
+ $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH); \
+ $(CP) $(STAGING_TARGET_DIR)/lib/$$file-$(PKG_VER).so $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH); \
done
glibc-dev-install:
echo $(TARGET_CFLAGS)
- ${INSTALL_DIR} $(IDIR_GLIBC_DEV)/lib $(IDIR_GLIBC_DEV)/usr/lib
+ ${INSTALL_DIR} $(IDIR_GLIBC_DEV)/$(ADK_TARGET_LIBC_PATH) $(IDIR_GLIBC_DEV)/usr/lib
# install linker script
-cp ./files/libc.so.$(CPU_ARCH) $(IDIR_GLIBC_DEV)/usr/lib/libc.so
${CP} ${STAGING_TARGET_DIR}/usr/lib/crt* ${IDIR_GLIBC_DEV}/usr/lib
${CP} ${STAGING_TARGET_DIR}/usr/lib/libc_nonshared.a ${IDIR_GLIBC_DEV}/usr/lib
- -for file in libcrypt libdl libm libresolv librt libutil; do \
- cd $(IDIR_GLIBC_DEV)/lib; ln -sf $$file-$(PKG_VER).so $$file.so; \
+ -for file in libcrypt libdl libm libresolv libutil; do \
+ cd $(IDIR_GLIBC_DEV)/$(ADK_TARGET_LIBC_PATH); ln -sf $$file-$(PKG_VER).so $$file.so; \
done
# header package
$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_VERSION)-$(KERNEL_RELEASE)/linux-$(KERNEL_VERSION) \
diff --git a/package/libgcc/Makefile b/package/libgcc/Makefile
index 6f5208c9f..bea6792e7 100644
--- a/package/libgcc/Makefile
+++ b/package/libgcc/Makefile
@@ -7,7 +7,7 @@ include ${TOPDIR}/toolchain/gcc/Makefile.inc
PKG_NAME:= libgcc
PKG_DESCR:= GCC library
PKG_SECTION:= libs
-PKG_DFLT_LIBGCC:= y if !ADK_TOOLCHAIN_ONLY
+#PKG_DFLT_LIBGCC:= y if !ADK_TOOLCHAIN_ONLY
NO_DISTFILES:= 1
@@ -23,8 +23,8 @@ INSTALL_STYLE:= manual
do-install:
ifeq ($(ADK_NATIVE),)
- ${INSTALL_DIR} ${IDIR_LIBGCC}/lib
- ${CP} ${STAGING_TARGET_DIR}/lib/libgcc*.so* ${IDIR_LIBGCC}/lib
+ ${INSTALL_DIR} ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
+ ${CP} ${STAGING_TARGET_DIR}/lib/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
endif
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/libpthread/Makefile b/package/libpthread/Makefile
index c14dc6c43..04f777650 100644
--- a/package/libpthread/Makefile
+++ b/package/libpthread/Makefile
@@ -40,8 +40,8 @@ INSTALL_STYLE:= manual
libpthread-install:
ifeq ($(ADK_NATIVE),)
- ${INSTALL_DIR} ${IDIR_LIBPTHREAD}/lib
- ${CP} ${STAGING_TARGET_DIR}/lib/libpthread*.so* ${IDIR_LIBPTHREAD}/lib
+ ${INSTALL_DIR} ${IDIR_LIBPTHREAD}/$(ADK_TARGET_LIBC_PATH)
+ ${CP} ${STAGING_TARGET_DIR}/lib/libpthread*.so* ${IDIR_LIBPTHREAD}/$(ADK_TARGET_LIBC_PATH)
endif
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/librt/Makefile b/package/librt/Makefile
new file mode 100644
index 000000000..e3f9ee052
--- /dev/null
+++ b/package/librt/Makefile
@@ -0,0 +1,47 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+ifeq ($(ADK_TARGET_LIB_GLIBC),y)
+include ${TOPDIR}/toolchain/glibc/Makefile.inc
+endif
+ifeq ($(ADK_TARGET_LIB_EGLIBC),y)
+include ${TOPDIR}/toolchain/eglibc/Makefile.inc
+endif
+ifeq ($(ADK_TARGET_LIB_UCLIBC),y)
+include ${TOPDIR}/toolchain/uClibc/Makefile.inc
+endif
+ifeq ($(ADK_NATIVE),y)
+PKG_VERSION:= 1.0
+PKG_RELEASE:= 1
+endif
+
+PKG_NAME:= librt
+PKG_DESCR:= Realtime library
+PKG_SECTION:= libs
+PKG_OPTS:= noremove
+
+NO_DISTFILES:= 1
+
+PKG_SUBPKGS:= LIBRT
+
+ifeq ($(ADK_STATIC),y)
+PKG_OPTS+= libonly
+endif
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,LIBRT,librt,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+librt-install:
+ifeq ($(ADK_NATIVE),)
+ ${INSTALL_DIR} ${IDIR_LIBR}/$(ADK_TARGET_LIBC_PATH)
+ ${CP} ${STAGING_TARGET_DIR}/lib/librt*.so* ${IDIR_LIBR}/$(ADK_TARGET_LIBC_PATH)
+endif
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/librt/files/libpthread.postinst b/package/librt/files/libpthread.postinst
new file mode 100644
index 000000000..76a6c81a4
--- /dev/null
+++ b/package/librt/files/libpthread.postinst
@@ -0,0 +1,4 @@
+#!/bin/sh
+if [ ! -z $IPKG_INSTROOT ];then
+ (cd $IPKG_INSTROOT/lib && ln -sf libpthread.so.0 libpthread.so)
+fi
diff --git a/package/librt/files/libpthread.so.arm b/package/librt/files/libpthread.so.arm
new file mode 100644
index 000000000..73f6b6c9d
--- /dev/null
+++ b/package/librt/files/libpthread.so.arm
@@ -0,0 +1,5 @@
+/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+OUTPUT_FORMAT(elf32-arm)
+GROUP ( /lib/libpthread.so.0 /usr/lib/libpthread_nonshared.a )
diff --git a/package/librt/files/libpthread.so.x86 b/package/librt/files/libpthread.so.x86
new file mode 100644
index 000000000..e7555c820
--- /dev/null
+++ b/package/librt/files/libpthread.so.x86
@@ -0,0 +1,5 @@
+/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+OUTPUT_FORMAT(elf32-i386)
+GROUP ( /lib/libpthread.so.0 /usr/lib/libpthread_nonshared.a )
diff --git a/package/librt/files/libpthread.so.x86_64 b/package/librt/files/libpthread.so.x86_64
new file mode 100644
index 000000000..b0e31f904
--- /dev/null
+++ b/package/librt/files/libpthread.so.x86_64
@@ -0,0 +1,5 @@
+/* GNU ld script
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+OUTPUT_FORMAT(elf64-x86-64)
+GROUP ( /lib/libpthread.so.0 /usr/lib/libpthread_nonshared.a )
diff --git a/package/uclibc/Makefile b/package/uclibc/Makefile
index b2d7c4dc1..5319881d8 100644
--- a/package/uclibc/Makefile
+++ b/package/uclibc/Makefile
@@ -25,33 +25,33 @@ INSTALL_STYLE:= manual
# do nothing, uClibc is already build in toolchain directory
do-install:
- ${INSTALL_DIR} $(IDIR_UCLIBC)/lib $(IDIR_UCLIBC)/etc
+ ${INSTALL_DIR} $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH) $(IDIR_UCLIBC)/etc
# create timezone file
test -z $(ADK_RUNTIME_TIMEZONE) || \
grep $(ADK_RUNTIME_TIMEZONE) ./files/tz.lst | \
cut -f 2 > $(IDIR_UCLIBC)/etc/TZ
ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y)
- $(CP) $(STAGING_TARGET_DIR)/lib/libssp.so* $(IDIR_UCLIBC)/lib
+ $(CP) $(STAGING_TARGET_DIR)/lib/libssp.so* $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH)
endif
- $(CP) $(STAGING_TARGET_DIR)/lib/libc.so.* $(IDIR_UCLIBC)/lib
+ $(CP) $(STAGING_TARGET_DIR)/lib/libc.so.* $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH)
$(CP) $(STAGING_TARGET_DIR)/lib/libuClibc-$(PKG_VERSION).so \
- $(IDIR_UCLIBC)/lib
+ $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH)
$(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc-$(PKG_VERSION).so \
- $(IDIR_UCLIBC)/lib
- $(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc.so.* $(IDIR_UCLIBC)/lib
- -for file in libcrypt libdl libm libresolv librt libutil; do \
- $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_UCLIBC)/lib; \
+ $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH)
+ $(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc.so.* $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH)
+ -for file in libcrypt libdl libm libresolv libutil; do \
+ $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH); \
$(CP) $(STAGING_TARGET_DIR)/lib/$$file-$(PKG_VERSION).so \
- $(IDIR_UCLIBC)/lib; \
+ $(IDIR_UCLIBC)/$(ADK_TARGET_LIBC_PATH); \
done
uclibc-dev-install:
- ${INSTALL_DIR} ${IDIR_UCLIBC_DEV}/usr/lib ${IDIR_UCLIBC_DEV}/lib
+ ${INSTALL_DIR} ${IDIR_UCLIBC_DEV}/usr/lib ${IDIR_UCLIBC_DEV}/$(ADK_TARGET_LIBC_PATH)
${CP} ${STAGING_TARGET_DIR}/usr/lib/libc.so ${IDIR_UCLIBC_DEV}/usr/lib
${CP} ${STAGING_TARGET_DIR}/usr/lib/uclibc_nonshared.a ${IDIR_UCLIBC_DEV}/usr/lib
${CP} ${STAGING_TARGET_DIR}/usr/lib/crt*.o ${IDIR_UCLIBC_DEV}/usr/lib
- for file in libcrypt libdl libm libresolv librt libutil; do \
- cd $(IDIR_UCLIBC_DEV)/lib/; ln -sf $$file-$(PKG_VERSION).so $$file.so; \
+ for file in libcrypt libdl libm libresolv libutil; do \
+ cd $(IDIR_UCLIBC_DEV)/$(ADK_TARGET_LIBC_PATH); ln -sf $$file-$(PKG_VERSION).so $$file.so; \
done
$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_VERSION)-$(KERNEL_RELEASE)/linux-$(KERNEL_VERSION) ARCH=$(ARCH) V=1 \
INSTALL_HDR_PATH=$(IDIR_UCLIBC_DEV)/usr \
diff --git a/rules.mk b/rules.mk
index 126be06ca..fa303a953 100644
--- a/rules.mk
+++ b/rules.mk
@@ -28,6 +28,7 @@ endif
ADK_TARGET_ARCH:= $(strip $(subst ",, $(ADK_TARGET_ARCH)))
ADK_TARGET_SYSTEM:= $(strip $(subst ",, $(ADK_TARGET_SYSTEM)))
ADK_TARGET_LIBC:= $(strip $(subst ",, $(ADK_TARGET_LIBC)))
+ADK_TARGET_LIBC_PATH:= $(strip $(subst ",, $(ADK_TARGET_LIBC_PATH)))
ADK_TARGET_ENDIAN:= $(strip $(subst ",, $(ADK_TARGET_ENDIAN)))
ADK_TARGET_CPU_ARCH:= $(strip $(subst ",, $(ADK_TARGET_CPU_ARCH)))
ADK_TARGET_CFLAGS:= $(strip $(subst ",, $(ADK_TARGET_CFLAGS)))
diff --git a/target/Makefile b/target/Makefile
index b7e94033a..edd839d4e 100644
--- a/target/Makefile
+++ b/target/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
all: install
-ifeq (${ADK_64BIT_KERNEL},y)
+ifeq (${ADK_TARGET_KERNEL64},y)
KERNEL_CFG:=kernel64.config
else
KERNEL_CFG:=kernel.config
diff --git a/target/config/Config.in b/target/config/Config.in
index 8d4a7957f..32a254900 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -31,7 +31,10 @@ endchoice
choice
prompt "Target Kernel"
-depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG || ADK_TARGET_SYSTEM_QEMU_MIPS64
+depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG \
+ || ADK_TARGET_SYSTEM_QEMU_MIPS64 \
+ || ADK_LINUX_X86_64
+
config ADK_TARGET_KERNEL64
boolean "64 Bit Kernel"
@@ -40,6 +43,15 @@ config ADK_TARGET_KERNEL32
endchoice
+config ADK_32
+ boolean
+
+config ADK_64
+ boolean
+
+config ADK_x32
+ boolean
+
config ADK_o32
boolean
@@ -73,6 +85,99 @@ config ADK_TARGET_ABI_N64
endchoice
+choice
+prompt "Target ABI"
+depends on ADK_TARGET_KERNEL64 && ADK_LINUX_X86_64
+
+config ADK_TARGET_ABI_64
+ boolean "64 Bit ABI"
+ select ADK_64
+
+config ADK_TARGET_ABI_X32
+ boolean "x32 ABI (new)"
+ select ADK_x32
+
+config ADK_TARGET_ABI_32
+ boolean "32 Bit ABI"
+ select ADK_32
+
+endchoice
+
+# multilib support
+config ADK_TARGET_LIBC_PATH
+ string
+ default "lib32" if ADK_n32
+ default "lib64" if ADK_n64 \
+ || ADK_64 || ADK_LINUX_SPARC64 \
+ || ADK_LINUX_PPC64 \
+ || ADK_LINUX_X86_64
+ default "libx32" if ADK_x32
+ default "lib"
+
+
+menu "Target multilib support"
+depends on ADK_TARGET_KERNEL64 && \
+ ADK_LINUX_X86_64 || \
+ ADK_LINUX_MIPS
+
+config ADK_TARGET_WITH_MULTILIB
+ boolean "multilib support"
+
+config ADK_TARGET_MULTILIB_X86_64
+ boolean "64 bit libraries"
+ depends on ADK_LINUX_X86_64 && ADK_TARGET_WITH_MULTILIB
+ default y
+
+config ADK_TARGET_MULTILIB_X86_32
+ boolean "32 bit libraries"
+ depends on ADK_LINUX_X86_64 && ADK_TARGET_WITH_MULTILIB
+
+config ADK_TARGET_MULTILIB_X86_X32
+ boolean "x32 bit libraries"
+ depends on ADK_LINUX_X86_64 && ADK_TARGET_WITH_MULTILIB
+
+choice
+prompt "Default Library (compile all applications with this library)"
+config ADK_TARGET_MULTILIB_X86_64_DEF
+ boolean "64 Bit libraries as default"
+ depends on ADK_TARGET_MULTILIB_X86_64
+
+config ADK_TARGET_MULTILIB_X86_32_DEF
+ boolean "32 Bit libraries as default"
+ depends on ADK_TARGET_MULTILIB_X86_32
+
+config ADK_TARGET_MULTILIB_X86_X32_DEF
+ boolean "x32 Bit libraries as default"
+ depends on ADK_TARGET_MULTILIB_X86_X32
+
+endchoice
+endmenu
+
+config ADK_MULTILIB_TARGET
+ string
+ default "m32" if ADK_TARGET_MULTILIB_X86_32 \
+ && !ADK_TARGET_MULTILIB_X86_64 \
+ && !ADK_TARGET_MULTILIB_X86_X32
+ default "m64" if !ADK_TARGET_MULTILIB_X86_32 \
+ && ADK_TARGET_MULTILIB_X86_64 \
+ && !ADK_TARGET_MULTILIB_X86_X32
+ default "x32" if !ADK_TARGET_MULTILIB_X86_32 \
+ && !ADK_TARGET_MULTILIB_X86_64 \
+ && ADK_TARGET_MULTILIB_X86_X32
+ default "m32,m64" if ADK_TARGET_MULTILIB_X86_32 \
+ && ADK_TARGET_MULTILIB_X86_64 \
+ && !ADK_TARGET_MULTILIB_X86_X32
+ default "mx32,m64" if !ADK_TARGET_MULTILIB_X86_32 \
+ && ADK_TARGET_MULTILIB_X86_64 \
+ && ADK_TARGET_MULTILIB_X86_X32
+ default "m32,mx32" if ADK_TARGET_MULTILIB_X86_32 \
+ && !ADK_TARGET_MULTILIB_X86_64 \
+ && ADK_TARGET_MULTILIB_X86_X32
+ default "m64,m32,mx32" if ADK_TARGET_MULTILIB_X86_32 \
+ && ADK_TARGET_MULTILIB_X86_64 \
+ && ADK_TARGET_MULTILIB_X86_X32
+
+
# submodel support
#
choice
@@ -375,6 +480,9 @@ config ADK_TARGET_ABI_CFLAGS
default "-mabi=32" if ADK_TARGET_ABI_O32
default "-mabi=n32 -Wl,-m -Wl,elf32ltsmipn32" if ADK_TARGET_ABI_N32
default "-mabi=64 -Wl,-m -Wl,elf64ltsmip" if ADK_TARGET_ABI_N64
+ default "-m32" if ADK_TARGET_ABI_32
+ default "-mx32" if ADK_TARGET_ABI_X32
+ default "-m64" if ADK_TARGET_ABI_64
config ADK_TARGET_KERNEL_LDFLAGS
string
diff --git a/target/linux/config/Config.in.debug b/target/linux/config/Config.in.debug
index d73e98f02..6bf4ce0c6 100644
--- a/target/linux/config/Config.in.debug
+++ b/target/linux/config/Config.in.debug
@@ -75,7 +75,9 @@ config ADK_KERNEL_DEBUG_WITH_KGDB
select ADK_KERNEL_FRAME_POINTER
depends on ADK_TARGET_ROOTFS_NFSROOT || \
ADK_TARGET_ROOTFS_ARCHIVE || \
- ADK_TARGET_ROOTFS_YAFFS
+ ADK_TARGET_ROOTFS_YAFFS || \
+ ADK_TARGET_ROOTFS_INITRAMFS || \
+ ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
default n
config ADK_KPACKAGE_KMOD_OPROFILE
diff --git a/target/linux/config/Config.in.leds b/target/linux/config/Config.in.leds
index 88acae81e..54298bc3c 100644
--- a/target/linux/config/Config.in.leds
+++ b/target/linux/config/Config.in.leds
@@ -9,6 +9,10 @@ config ADK_KERNEL_LEDS_TRIGGERS
boolean
select ADK_KERNEL_NEW_LEDS
+config ADK_KPACKAGE_KMOD_LEDS_CLASS
+ boolean
+ depends on !ADK_KERNEL_LEDS_CLASS
+
menu "LEDS driver support"
depends on ADK_TARGET_WITH_LEDS
diff --git a/target/packages/pkg-available/laptop b/target/packages/pkg-available/laptop
index 0193703de..60f172e2c 100644
--- a/target/packages/pkg-available/laptop
+++ b/target/packages/pkg-available/laptop
@@ -4,6 +4,7 @@ config ADK_PKG_LAPTOP
select ADK_PACKAGE_SCREEN
select ADK_PACKAGE_VIM
select ADK_PACKAGE_SUDO
+ select ADK_PACKAGE_LYNX
select ADK_PACKAGE_KEYCHAIN
select ADK_PACKAGE_ALSA_UTILS
select ADK_PACKAGE_OPENSSH_CLIENT
@@ -12,10 +13,12 @@ config ADK_PKG_LAPTOP
select ADK_PACKAGE_MKSH
select ADK_PACKAGE_MKSH_FULL
select ADK_PACKAGE_RXVT_UNICODE
+ select ADK_PACKAGE_XTERM
select ADK_PACKAGE_XORG_SERVER
select ADK_PACKAGE_XORG_SERVER_WITH_DRI
select ADK_PACKAGE_XF86_INPUT_KEYBOARD
select ADK_PACKAGE_XF86_INPUT_MOUSE
+ select ADK_PACKAGE_XF86_VIDEO_INTEL if ADK_TARGET_SYSTEM_IBM_X40
select ADK_PACKAGE_XF86_VIDEO_SILICONMOTION if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
select ADK_PACKAGE_FONT_MISC_MISC
select ADK_PACKAGE_SETXKBMAP
@@ -24,6 +27,9 @@ config ADK_PKG_LAPTOP
select ADK_PACKAGE_FEH
select ADK_PACKAGE_XINIT
select ADK_PACKAGE_EVILWM
+ select ADK_PACKAGE_IRSSI
+ select ADK_PACKAGE_IRSSI_WITH_SSL
+ select ADK_PACKAGE_IRSSI_WITH_IPV6
select ADK_PACKAGE_XRDB
select ADK_PACKAGE_FIREFOX
select ADK_PACKAGE_DILLO
diff --git a/target/x86_64/kernel.config b/target/x86_64/kernel.config
index c9abf6e36..2fc483406 100644
--- a/target/x86_64/kernel.config
+++ b/target/x86_64/kernel.config
@@ -1,58 +1,44 @@
#
-# Automatically generated make config: don't edit
-# Linux/x86 2.6.39 Kernel Configuration
-# Thu Oct 13 08:46:44 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/x86 3.5.4 Kernel Configuration
#
-CONFIG_64BIT=y
-# CONFIG_X86_32 is not set
-CONFIG_X86_64=y
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
-CONFIG_OUTPUT_FORMAT="elf64-x86-64"
-CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
-CONFIG_ZONE_DMA=y
-CONFIG_NEED_DMA_MAP_STATE=y
+# CONFIG_NEED_DMA_MAP_STATE is not set
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ZONE_DMA32=y
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-CONFIG_AUDIT_ARCH=y
+# CONFIG_ZONE_DMA32 is not set
+# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_X86_64_SMP=y
-CONFIG_X86_HT=y
-CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
-# CONFIG_KTIME_SCALAR is not set
-CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_X86_32_LAZY_GS=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
+CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y
@@ -60,6 +46,7 @@ CONFIG_IRQ_WORK=y
# General setup
#
CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
@@ -74,7 +61,7 @@ CONFIG_HAVE_KERNEL_LZO=y
# CONFIG_KERNEL_LZMA is not set
CONFIG_KERNEL_XZ=y
# CONFIG_KERNEL_LZO is not set
-# CONFIG_SWAP is not set
+CONFIG_DEFAULT_HOSTNAME="openadk"
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
@@ -89,28 +76,35 @@ CONFIG_HAVE_GENERIC_HARDIRQS=y
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_FORCED_THREADING=y
-# CONFIG_SPARSE_IRQ is not set
+CONFIG_SPARSE_IRQ=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
#
# RCU Subsystem
#
-CONFIG_TREE_RCU=y
+CONFIG_TINY_RCU=y
# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=64
-# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
+# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=15
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
# CONFIG_CGROUPS is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
# CONFIG_NAMESPACES is not set
# CONFIG_SCHED_AUTOGROUP is not set
# CONFIG_SYSFS_DEPRECATED is not set
@@ -121,21 +115,23 @@ CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_EXPERT=y
CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-# CONFIG_KALLSYMS is not set
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
-# CONFIG_ELF_CORE is not set
-# CONFIG_PCSPKR_PLATFORM is not set
-CONFIG_BASE_FULL=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+# CONFIG_BASE_FULL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
-CONFIG_AIO=y
+# CONFIG_AIO is not set
CONFIG_EMBEDDED=y
CONFIG_HAVE_PERF_EVENTS=y
@@ -143,15 +139,17 @@ CONFIG_HAVE_PERF_EVENTS=y
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
-# CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is no