summaryrefslogtreecommitdiff
path: root/package/glibc
diff options
context:
space:
mode:
Diffstat (limited to 'package/glibc')
-rw-r--r--package/glibc/Config.in18
-rw-r--r--package/glibc/Config.in.manual18
-rw-r--r--package/glibc/Makefile34
-rw-r--r--package/glibc/files/libc.so.x865
-rw-r--r--package/glibc/files/libc.so.x86_645
5 files changed, 50 insertions, 30 deletions
diff --git a/package/glibc/Config.in b/package/glibc/Config.in
index b6879a384..e69de29bb 100644
--- a/package/glibc/Config.in
+++ b/package/glibc/Config.in
@@ -1,18 +0,0 @@
-config ADK_PACKAGE_GLIBC
- prompt "glibc............................... GNU C library"
- bool
- default y if ADK_TARGET_LIB_GLIBC && !ADK_TOOLCHAIN_ONLY
- default n
- depends on ADK_TARGET_LIB_GLIBC
- help
- GNU C library.
-
-config ADK_PACKAGE_GLIBC_DEV
- prompt "glibc-dev........................... development files"
- bool
- default n
- depends on ADK_TARGET_LIB_GLIBC
- help
- GNU C library header files.
-
-
diff --git a/package/glibc/Config.in.manual b/package/glibc/Config.in.manual
new file mode 100644
index 000000000..6e7db32c9
--- /dev/null
+++ b/package/glibc/Config.in.manual
@@ -0,0 +1,18 @@
+config ADK_PACKAGE_GLIBC
+ prompt "glibc............................... GNU C library"
+ bool
+ default y if ADK_TARGET_LIB_GLIBC && !ADK_TOOLCHAIN_ONLY
+ default n
+ depends on ADK_TARGET_LIB_GLIBC
+ help
+ GNU C library.
+
+config ADK_PACKAGE_GLIBC_DEV
+ prompt "glibc-dev........................... development files"
+ tristate
+ default n
+ depends on ADK_TARGET_LIB_GLIBC
+ help
+ GNU C library header files.
+
+
diff --git a/package/glibc/Makefile b/package/glibc/Makefile
index c068c3606..084a71918 100644
--- a/package/glibc/Makefile
+++ b/package/glibc/Makefile
@@ -28,31 +28,41 @@ GLIBC_CONFOPTS:= \
--enable-add-ons
$(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}))
-do-extract:
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
-# do nothing, glibc is already build in toolchain directory
-do-install:
+SUB_INSTALLS-y:=
+SUB_INSTALLS-m:=
+SUB_INSTALLS-${ADK_PACKAGE_GLIBC_DEV}+= glibc-dev-install
+
+# compile nothing, glibc is already build in toolchain directory
+do-install: ${SUB_INSTALLS-m} ${SUB_INSTALLS-y}
${INSTALL_DIR} $(IDIR_GLIBC)/lib $(IDIR_GLIBC)/etc
# install /etc/localtime from host system (FIXME)
${CP} /etc/localtime $(IDIR_GLIBC)/etc
-ifeq ($(ADK_SSP),y)
- $(CP) $(STAGING_DIR)/lib/libssp.so* $(IDIR_GLIBC)/lib/
-endif
$(CP) $(STAGING_DIR)/lib/libgcc_s.so* $(IDIR_GLIBC)/lib/
$(CP) $(STAGING_DIR)/lib/ld-*.so* $(IDIR_GLIBC)/lib/
- -for file in libc libcrypt libdl libm libresolv librt libutil libnss_compat libnss_dns libnss_files; do \
+ -for file in libc libcrypt libdl libm libnsl libresolv librt libutil libnss_compat libnss_dns libnss_files; do \
$(CP) $(STAGING_DIR)/lib/$$file.so* $(IDIR_GLIBC)/lib/; \
$(CP) $(STAGING_DIR)/lib/$$file-$(PKG_VERSION).so $(IDIR_GLIBC)/lib/; \
done
- # create ld.so link for mips gcc linker option
- cd $(IDIR_GLIBC)/lib && ln -sf ld-linux.so.2 ld.so.1
+
+glibc-dev-install:
+ ${INSTALL_DIR} $(IDIR_GLIBC_DEV)/lib $(IDIR_GLIBC_DEV)/usr/lib
+ # install linker script
+ -cp ./files/libc.so.$(ARCH) $(IDIR_GLIBC_DEV)/usr/lib/libc.so
+ ${CP} ${STAGING_DIR}/usr/lib/crt* ${IDIR_GLIBC_DEV}/usr/lib
+ ${CP} ${STAGING_DIR}/usr/lib/libc_nonshared.a ${IDIR_GLIBC_DEV}/usr/lib
# header package
- $(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/linux-$(KERNEL_VERSION) ARCH=$(ARCH) V=1 \
+ $(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_VERSION)-$(KERNEL_RELEASE)/linux-$(KERNEL_VERSION) \
+ HOSTCC=$(HOSTCC) ARCH=$(ARCH) V=1 \
INSTALL_HDR_PATH=$(IDIR_GLIBC_DEV)/usr \
headers_install
(cd $(WRKBUILD); \
- $(TOOLCHAIN_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/configure \
+ $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(PKG_NAME)-$(PKG_VERSION)/configure \
--prefix=/usr \
--with-sysroot=$(IDIR_GLIBC_DEV) \
${GLIBC_CONFOPTS} \
@@ -63,6 +73,6 @@ endif
install-headers
touch $(IDIR_GLIBC_DEV)/usr/include/gnu/stubs.h
touch $(IDIR_GLIBC_DEV)/usr/include/bits/stdio_lim.h
- @find $(IDIR_GLIBC_DEV) -name .install -delete
+ @find $(IDIR_GLIBC_DEV) -name .install -exec rm {} \;
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/glibc/files/libc.so.x86 b/package/glibc/files/libc.so.x86
new file mode 100644
index 000000000..cd8724cc5
--- /dev/null
+++ b/package/glibc/files/libc.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/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.2 ) )
diff --git a/package/glibc/files/libc.so.x86_64 b/package/glibc/files/libc.so.x86_64
new file mode 100644
index 000000000..a2e2de87f
--- /dev/null
+++ b/package/glibc/files/libc.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/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-x86-64.so.2 ) )