diff options
Diffstat (limited to 'package')
-rw-r--r-- | package/eglibc/Makefile | 68 | ||||
-rw-r--r-- | package/glibc/Makefile | 51 | ||||
-rw-r--r-- | package/libgcc/Makefile | 8 | ||||
-rw-r--r-- | package/librt/Makefile | 4 | ||||
-rw-r--r-- | package/libssp/Makefile | 47 |
5 files changed, 117 insertions, 61 deletions
diff --git a/package/eglibc/Makefile b/package/eglibc/Makefile index 40d1a4848..fe30f490e 100644 --- a/package/eglibc/Makefile +++ b/package/eglibc/Makefile @@ -3,6 +3,7 @@ include $(TOPDIR)/rules.mk include $(TOPDIR)/toolchain/eglibc/Makefile.inc +include $(TOPDIR)/toolchain/eglibc/Makefile.multilib PKG_DESCR:= embedded GNU C library PKG_SECTION:= base @@ -21,60 +22,32 @@ CONFIG_STYLE:= manual BUILD_STYLE:= manual INSTALL_STYLE:= manual -EGLIBC_CONFOPTS:= --build=$(GNU_HOST_NAME) \ - --host=$(REAL_GNU_TARGET_NAME) \ - --with-headers=$(STAGING_TARGET_DIR)/usr/include \ - --disable-nls \ - --without-cvs \ - --disable-profile \ - --disable-debug \ - --enable-kernel=2.6.0 \ - --without-gd \ - --with-__thread \ - --with-tls \ - --enable-add-ons - -EGLIBC_ENV:= PATH='${TARGET_PATH}' \ - GCC_HONOUR_COPTS=s \ - BUILD_CC=${CC_FOR_BUILD} \ - CFLAGS="$(TARGET_CFLAGS)" \ - CC=${REAL_GNU_TARGET_NAME}-gcc \ - CXX=${REAL_GNU_TARGET_NAME}-g++ \ - AR=${REAL_GNU_TARGET_NAME}-ar \ - RANLIB=${REAL_GNU_TARGET_NAME}-ranlib \ - libc_cv_forced_unwind=yes \ - libc_cv_c_cleanup=yes \ - libc_cv_gnu99_inline=yes \ - libc_cv_slibdir="/lib" - # compile nothing, eglibc is already build in toolchain directory do-install: -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)/$(ADK_TARGET_LIBC_PATH) $(IDIR_EGLIBC)/etc \ +ifeq ($(ADK_TARGET_WITH_MULTILIB),y) + for abi in $(TABI); do \ + ${INSTALL_DIR} $(IDIR_EGLIBC)/lib$${abi/*:/} $(IDIR_EGLIBC)/usr/lib$${abi/*:/} ; \ + $(CP) $(STAGING_TARGET_DIR)/lib/ld* $(IDIR_EGLIBC)/lib$${abi/*:/} ; \ + -for file in libc libcrypt libdl libm libresolv libutil libnsl libnss_dns libnss_files; do \ + $(CP) $(STAGING_TARGET_DIR)-$${abi/*:/}/lib/$$file.so* $(IDIR_EGLIBC)/lib$${abi/*:/}; \ + $(CP) $(STAGING_TARGET_DIR)-$${abi/*:/}/lib/$$file-$(PKG_VERSION).so $(IDIR_EGLIBC)/lib$${abi/*:/}; \ + done ; \ + done +else + ${INSTALL_DIR} $(IDIR_EGLIBC)/$(ADK_TARGET_LIBC_PATH) \ $(IDIR_EGLIBC)/usr/lib $(IDIR_EGLIBC)/usr/bin -ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y) - $(CP) $(STAGING_TARGET_DIR)/lib/libssp.so* $(IDIR_EGLIBC)/$(ADK_TARGET_LIBC_PATH) -endif $(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 - ${INSTALL_DATA} ${STAGING_TARGET_DIR}/etc/nsswitch.conf ${IDIR_EGLIBC}/etc $(CP) $(STAGING_TARGET_DIR)/usr/bin/getconf $(IDIR_EGLIBC)/usr/bin -ifeq ($(ADK_TARGET_MULTILIB_X86_32),y) - ${INSTALL_DIR} $(IDIR_EGLIBC)/lib32 $(IDIR_EGLIBC)/usr/lib32 - $(CP) $(STAGING_TARGET_DIR_32)/lib/ld* $(IDIR_EGLIBC)/lib32 - -for file in libc libcrypt libdl libm libresolv libutil libnsl libnss_dns libnss_files; do \ - $(CP) $(STAGING_TARGET_DIR_32)/lib/$$file.so* $(IDIR_EGLIBC)/lib32; \ - $(CP) $(STAGING_TARGET_DIR_32)/lib/$$file-$(PKG_VERSION).so $(IDIR_EGLIBC)/lib32; \ - done +ifeq ($(ADK_LOCALES),y) + $(CP) $(STAGING_TARGET_DIR)/usr/bin/locale $(IDIR_EGLIBC)/usr/bin +endif endif + ${INSTALL_DIR} $(IDIR_EGLIBC)/etc + ${INSTALL_DATA} ${STAGING_TARGET_DIR}/etc/{gai,nscd,nsswitch}.conf ${IDIR_EGLIBC}/etc eglibc-static-install: ${INSTALL_DIR} $(IDIR_EGLIBC_STATIC)/usr/lib @@ -106,13 +79,14 @@ endif (cd $(WRKBUILD); \ ${EGLIBC_ENV} \ $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(PKG_NAME)-$(PKG_VERSION)/libc/configure \ + --host=$(REAL_GNU_TARGET_NAME) \ --prefix=$(IDIR_EGLIBC_DEV)/usr \ --with-headers=$(IDIR_EGLIBC_DEV)/usr/include \ ${EGLIBC_CONFOPTS} \ ); - PATH='${TARGET_PATH}' $(MAKE) -C $(WRKBUILD) \ - install-headers install-bootstrap-headers=yes - @touch $(IDIR_EGLIBC_DEV)/usr/include/gnu/stubs.h + PATH='${TARGET_PATH}' $(MAKE) -C $(WRKBUILD) install-headers install-bootstrap-headers=yes + touch $(IDIR_EGLIBC_DEV)/usr/include/gnu/stubs.h + touch $(IDIR_EGLIBC_DEV)/usr/include/gnu/stubs-{32,x32,64}.h @find $(IDIR_EGLIBC_DEV) -name .install -exec rm {} \; @find $(IDIR_EGLIBC_DEV) -name ..install.cmd -exec rm {} \; # conflicts with libiconv diff --git a/package/glibc/Makefile b/package/glibc/Makefile index 9655288a6..355595ffa 100644 --- a/package/glibc/Makefile +++ b/package/glibc/Makefile @@ -3,16 +3,17 @@ include $(TOPDIR)/rules.mk -TARGET_CFLAGS:= $(filter-out -fstack-protector,$(TARGET_CFLAGS)) -TARGET_CFLAGS:= $(filter-out -flto,$(TARGET_CFLAGS)) +TARGET_CFLAGS:= $(filter-out -fstack-protector,$(TARGET_CFLAGS)) +TARGET_CFLAGS:= $(filter-out -flto,$(TARGET_CFLAGS)) include $(TOPDIR)/toolchain/glibc/Makefile.inc +include $(TOPDIR)/toolchain/glibc/Makefile.multilib PKG_DESCR:= GNU C library PKG_VER:= 2.16 PKG_SECTION:= base PKG_OPTS:= noremove -PKG_SUBPKGS:= GLIBC GLIBC_DEV +PKG_SUBPKGS:= GLIBC GLIBC_DEV GLIBC_STATIC NO_DISTFILES:= 1 @@ -20,9 +21,10 @@ include $(TOPDIR)/mk/package.mk $(eval $(call PKG_template,GLIBC,glibc,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) $(eval $(call PKG_template,GLIBC_DEV,glibc-dev,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) +$(eval $(call PKG_template,GLIBC_STATIC,$(PKG_NAME)-static,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) -TARGET_CFLAGS:= $(filter-out -fstack-protector,$(TARGET_CFLAGS)) -TARGET_CFLAGS:= $(filter-out -flto,$(TARGET_CFLAGS)) +#TARGET_CFLAGS:= $(filter-out -fstack-protector,$(TARGET_CFLAGS)) +#TARGET_CFLAGS:= $(filter-out -flto,$(TARGET_CFLAGS)) XAKE_FLAGS+= GCC_HONOUR_COPTS=s CONFIG_STYLE:= manual @@ -31,24 +33,48 @@ INSTALL_STYLE:= manual # compile nothing, glibc is already build in toolchain directory do-install: - ${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)/$(ADK_TARGET_LIBC_PATH) -endif +ifeq ($(ADK_TARGET_WITH_MULTILIB),y) + for abi in $(TABI); do \ + ${INSTALL_DIR} $(IDIR_GLIBC)/lib$${abi/*:/} $(IDIR_GLIBC)/usr/lib$${abi/*:/} ; \ + $(CP) $(STAGING_TARGET_DIR)/lib/ld* $(IDIR_GLIBC)/lib$${abi/*:/} ; \ + -for file in libc libcrypt libdl libm libresolv libutil libnsl libnss_dns libnss_files; do \ + $(CP) $(STAGING_TARGET_DIR)-$${abi/*:/}/lib/$$file.so* $(IDIR_GLIBC)/lib$${abi/*:/}; \ + $(CP) $(STAGING_TARGET_DIR)-$${abi/*:/}/lib/$$file-$(PKG_VERSION).so $(IDIR_GLIBC)/lib$${abi/*:/}; \ + done ; \ + done +else + ${INSTALL_DIR} ${IDIR_GLIBC}/$(ADK_TARGET_LIBC_PATH) $(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 + $(CP) $(STAGING_TARGET_DIR)/usr/bin/getconf $(IDIR_GLIBC)/usr/bin +ifeq ($(ADK_LOCALES),y) + $(CP) $(STAGING_TARGET_DIR)/usr/bin/locale $(IDIR_GLIBC)/usr/bin +endif +endif + ${INSTALL_DIR} ${IDIR_GLIBC}/etc + ${INSTALL_DATA} ${STAGING_TARGET_DIR}/etc/{gai,nscd,nsswitch}.conf ${IDIR_GLIBC}/etc + +glibc-static-install: + ${INSTALL_DIR} $(IDIR_GLIBC_STATIC)/usr/lib + $(CP) $(STAGING_TARGET_DIR)/usr/lib/libc.a $(IDIR_GLIBC_STATIC)/usr/lib glibc-dev-install: echo $(TARGET_CFLAGS) ${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 +ifeq ($(ADK_TARGET_ABI_O32),y) + $(SED) "s#@@ELFFORMAT@@#elf32-tradlittlemips#" $(IDIR_GLIBC_DEV)/usr/lib/libc.so +endif +ifeq ($(ADK_TARGET_ABI_N32),y) + $(SED) "s#@@ELFFORMAT@@#elf32-ntradlittlemips#" $(IDIR_GLIBC_DEV)/usr/lib/libc.so +endif +ifeq ($(ADK_TARGET_ABI_N64),y) + $(SED) "s#@@ELFFORMAT@@#elf64-tradlittlemips#" $(IDIR_GLIBC_DEV)/usr/lib/libc.so +endif ${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 libutil; do \ @@ -69,6 +95,7 @@ glibc-dev-install: ); $(GLIBC_ENV) $(MAKE) -C $(WRKBUILD) cross-compiling=yes install-headers touch $(IDIR_GLIBC_DEV)/usr/include/gnu/stubs.h + touch $(IDIR_GLIBC_DEV)/usr/include/gnu/stubs-{32,x32,64}.h touch $(IDIR_GLIBC_DEV)/usr/include/bits/stdio_lim.h # WORKAROUND: bits/syscall.h is only installed via install-others target $(CP) $(STAGING_TARGET_DIR)/usr/include/bits/syscall.h \ diff --git a/package/libgcc/Makefile b/package/libgcc/Makefile index bea6792e7..fbe82117f 100644 --- a/package/libgcc/Makefile +++ b/package/libgcc/Makefile @@ -26,5 +26,13 @@ ifeq ($(ADK_NATIVE),) ${INSTALL_DIR} ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH) ${CP} ${STAGING_TARGET_DIR}/lib/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH) endif +ifeq ($(ADK_TARGET_MULTILIB_X86_32),y) + ${INSTALL_DIR} ${IDIR_LIBGCC}/lib32 + ${CP} ${STAGING_TARGET_DIR_32}/lib/libgcc*.so* ${IDIR_LIBGCC}/lib32 +endif +ifeq ($(ADK_TARGET_MULTILIB_X86_X32),y) + ${INSTALL_DIR} ${IDIR_LIBGCC}/libx32 + ${CP} ${STAGING_TARGET_DIR_X32}/lib/libgcc*.so* ${IDIR_LIBGCC}/libx32 +endif include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/librt/Makefile b/package/librt/Makefile index e3f9ee052..9695257f8 100644 --- a/package/librt/Makefile +++ b/package/librt/Makefile @@ -40,8 +40,8 @@ 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) + ${INSTALL_DIR} ${IDIR_LIBRT}/$(ADK_TARGET_LIBC_PATH) + ${CP} ${STAGING_TARGET_DIR}/lib/librt*.so* ${IDIR_LIBRT}/$(ADK_TARGET_LIBC_PATH) endif include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/libssp/Makefile b/package/libssp/Makefile new file mode 100644 index 000000000..4f43bb425 --- /dev/null +++ b/package/libssp/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:= libssp +PKG_DESCR:= Stack smashing protection library +PKG_SECTION:= libs +PKG_OPTS:= noremove + +NO_DISTFILES:= 1 + +PKG_SUBPKGS:= LIBSSP + +ifeq ($(ADK_STATIC),y) +PKG_OPTS+= libonly +endif + +include ${TOPDIR}/mk/package.mk + +$(eval $(call PKG_template,LIBSSP,libssp,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) + +CONFIG_STYLE:= manual +BUILD_STYLE:= manual +INSTALL_STYLE:= manual + +libssp-install: +ifeq ($(ADK_NATIVE),) + ${INSTALL_DIR} ${IDIR_LIBSSP}/$(ADK_TARGET_LIBC_PATH) + ${CP} ${STAGING_TARGET_DIR}/lib/libssp.so* ${IDIR_LIBSSP}/$(ADK_TARGET_LIBC_PATH) +endif + +include ${TOPDIR}/mk/pkg-bottom.mk |