From a427aa2f4a47ae242110e9d98d4bed307f8dad73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Sat, 12 Oct 2013 02:37:20 +0200 Subject: [PATCH] Preserve resources and attributes when copying stripped binaries When asked to strip binaries when copying to containers we now strip to a temporary file, copy over resources to it, copy it to the container, then copy the attributes from the original source. This should allow stripping binaries while preserving attributes and resources even when copying to images. --- build/jam/ImageRules | 12 +++++++++--- build/jam/images/FloppyBootImage | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/build/jam/ImageRules b/build/jam/ImageRules index 91ca1e40aae..3ff1af87bd8 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -800,11 +800,17 @@ actions AppendToContainerCopyFilesScriptStripFile >> $(2[1]) fi - echo \$cp "\"\${sPrefix}$(2[2])\"" \ + echo "stripped_file=\"\${tmpDir}/stripped_\$\$\"" >> $(2[1]) + + echo \$strip -o "\"\${stripped_file}\"" "\"\${sPrefix}$(2[2])\"" >> $(2[1]) + echo \$xres -o "\"\${stripped_file}\"" "\"\${sPrefix}$(2[2])\"" >> $(2[1]) + + echo \$cp "\"\${stripped_file}\"" \ + "\"\${tPrefix}$(TARGET_DIR)/$(INSTALL_TARGET_NAME)\"" >> $(2[1]) + echo \$copyattr "\"\${sPrefix}$(2[2])\"" \ "\"\${tPrefix}$(TARGET_DIR)/$(INSTALL_TARGET_NAME)\"" >> $(2[1]) - echo \$strip "\"\${tPrefix}$(TARGET_DIR)/$(INSTALL_TARGET_NAME)\"" \ - "2>/dev/null" "|| true" >> $(2[1]) + echo \$rm "\"\${stripped_file}\"" >> $(2[1]) } diff --git a/build/jam/images/FloppyBootImage b/build/jam/images/FloppyBootImage index 61c16ff888f..db79ea0f0e8 100644 --- a/build/jam/images/FloppyBootImage +++ b/build/jam/images/FloppyBootImage @@ -184,6 +184,7 @@ AddVariableToScript $(script) : addBuildCompatibilityLibDir : $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ; AddTargetVariableToScript $(script) : copyattr ; AddTargetVariableToScript $(script) : $(HAIKU_STRIP_$(TARGET_ARCH)) : strip ; +AddTargetVariableToScript $(script) : xres ; # create the other scripts local makeDirsScript = haiku-floppyboot-make-dirs ;