diff options
author | Waldemar Brodkorb <mail@waldemar-brodkorb.de> | 2012-10-05 14:49:13 +0200 |
---|---|---|
committer | Waldemar Brodkorb <mail@waldemar-brodkorb.de> | 2012-10-05 14:49:13 +0200 |
commit | f3db9f0c592ad982d6702ce8314888d97e2de68b (patch) | |
tree | 221a3d6adf72e19928c916ece41040ca46d95441 | |
parent | 6c6f588279720346ef20948130884437b0cd9e6d (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
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 \ @@ -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 |