Răsfoiți Sursa

toolchain: packetize libatomic

Based on a patch by Tobias Steinicke <[email protected]>.

Signed-off-by: Steven Barth <[email protected]>

SVN-Revision: 42514
Steven Barth 11 ani în urmă
părinte
comite
0a5caa47e5
1 a modificat fișierele cu 39 adăugiri și 1 ștergeri
  1. 39 1
      package/libs/toolchain/Makefile

+ 39 - 1
package/libs/toolchain/Makefile

@@ -52,6 +52,31 @@ define Package/libgcc/config
 	endmenu
 endef
 
+define Package/libatomic
+$(call Package/gcc/Default)
+  DEPENDS:=+libgcc
+  TITLE:=Atomic support library
+endef
+
+define Package/libatomic/config
+	menu "Configuration"
+		depends on EXTERNAL_TOOLCHAIN && PACKAGE_libatomic
+
+	config LIBATOMIC_ROOT_DIR
+		string
+		prompt "libatomic shared library base directory"
+		depends on EXTERNAL_TOOLCHAIN && PACKAGE_libatomic
+		default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
+		default "/"  if NATIVE_TOOLCHAIN
+
+	config LIBATOMIC_FILE_SPEC
+		string
+		prompt "libatomic shared library files (use wildcards)"
+		depends on EXTERNAL_TOOLCHAIN && PACKAGE_libatomic
+		default "./lib/libatomic.so.*"
+
+	endmenu
+endef
 
 define Package/libssp
 $(call Package/gcc/Default)
@@ -314,6 +339,13 @@ ifneq ($(BUILD_LIBGCC),)
 		"$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so))" \
 		$(BUILD_LIBGCC) \
 		-Wl,-soname=libcrypt.so.0
+	$(SCRIPT_DIR)/relink-lib.sh \
+		"$(TARGET_CROSS)" \
+		"$(wildcard $(TOOLCHAIN_DIR)/lib/libatomic.so)" \
+		"$(wildcard $(TOOLCHAIN_DIR)/lib/libatomic.a)" \
+		"$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libatomic*.so))" \
+		$(BUILD_LIBGCC) \
+		-Wl,-soname=libatomic.so.0
 	$(SCRIPT_DIR)/relink-lib.sh \
 		"$(TARGET_CROSS)" \
 		"$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so)" \
@@ -367,6 +399,11 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
 	$(if $(CONFIG_TARGET_avr32)$(CONFIG_TARGET_coldfire),,$(CP) $(TOOLCHAIN_DIR)/lib/libgcc_s.so.* $(1)/lib/)
   endef
 
+  define Package/libatomic/install
+	$(INSTALL_DIR) $(1)/lib
+	$(if $(CONFIG_TARGET_avr32)$(CONFIG_TARGET_coldfire),,$(CP) $(TOOLCHAIN_DIR)/lib/libatomic.so.* $(1)/lib/)
+  endef
+
   define Package/libgfortran/install
 	$(INSTALL_DIR) $(1)/usr/lib
 	$(if $(CONFIG_TARGET_avr32)$(CONFIG_TARGET_coldfire),,$(CP) $(TOOLCHAIN_DIR)/lib/libgfortran.so.* $(1)/usr/lib/)
@@ -414,7 +451,7 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
 		$(TOOLCHAIN_DIR)/lib/libc.so.* \
 		$(TOOLCHAIN_DIR)/lib/libuClibc-$(LIBC_SO_VERSION).so \
 		$(1)/lib/
-	for file in libcrypt libdl libm libutil; do \
+	for file in libatomic libcrypt libdl libm libutil; do \
 		$(CP) \
 			$(TOOLCHAIN_DIR)/lib/$$$$file.so.* \
 			$(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so \
@@ -588,6 +625,7 @@ endif
 
 $(eval $(call BuildPackage,libc))
 $(eval $(call BuildPackage,libgcc))
+$(eval $(call BuildPackage,libatomic))
 $(eval $(call BuildPackage,libssp))
 $(eval $(call BuildPackage,libstdcpp))
 $(eval $(call BuildPackage,libpthread))