hrev44648 adds 4 changesets to branch 'master' old head: f672eb2827c4d2c10387921a2042919f60178809 new head: d4cc0de33ee72f0cd9d1b607e8dbcadce7d75400 ---------------------------------------------------------------------------- 1a53a4d: Refactored the stripping of debug symbols to be a per-archive basis. Setting 'HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1' will enable the mechanism. By default all packages will be stripped. Passing anything other than '1' or 'true' in the InstallOptionalHaikuImagePackage call will disable it for a particular package. 7ae330f: Updated comment. 5114fc1: Ensure that wpa_supplicant does not get stripped. See #8603 for history. d4cc0de: Re-enable stripping of debug symbols for @alpha-*, @nightly-* For a GCC 2 hybrid image, this brings the size down from 781MiB to 743MiB. [ Matt Madia <mattmadia@xxxxxxxxx> ] ---------------------------------------------------------------------------- 7 files changed, 35 insertions(+), 17 deletions(-) build/jam/HaikuCD | 2 -- build/jam/HaikuImage | 2 -- build/jam/ImageRules | 31 ++++++++++++++++++++++++------- build/jam/OptionalPackages | 8 +++++--- build/jam/ReleaseBuildProfiles | 2 ++ build/jam/UserBuildConfig.ReadMe | 1 + build/scripts/build_haiku_image | 6 +++--- ############################################################################ Commit: 1a53a4d3f5ab0881fbe0b76bfb360d94cfb6d1a1 URL: http://cgit.haiku-os.org/haiku/commit/?id=1a53a4d Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Sun Sep 16 23:41:24 2012 UTC Refactored the stripping of debug symbols to be a per-archive basis. Setting 'HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1' will enable the mechanism. By default all packages will be stripped. Passing anything other than '1' or 'true' in the InstallOptionalHaikuImagePackage call will disable it for a particular package. ---------------------------------------------------------------------------- diff --git a/build/jam/HaikuCD b/build/jam/HaikuCD index e88ba3b..d77e752 100644 --- a/build/jam/HaikuCD +++ b/build/jam/HaikuCD @@ -28,8 +28,6 @@ AddVariableToScript $(script) : isCD : 1 ; AddVariableToScript $(script) : cdLabel : $(HAIKU_CD_LABEL) ; AddVariableToScript $(script) : addBuildCompatibilityLibDir : $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ; -AddVariableToScript $(script) : stripOptionalPackageDebugSymbols - : $(HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES) ; AddTargetVariableToScript $(script) : <build>addattr ; AddTargetVariableToScript $(script) : <build>copyattr ; AddTargetVariableToScript $(script) : <build>rc ; diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index b19863e..67fc612 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -904,8 +904,6 @@ AddVariableToScript $(script) : addBuildCompatibilityLibDir : $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ; AddVariableToScript $(script) : dontClearImage : $(HAIKU_DONT_CLEAR_IMAGE) ; AddVariableToScript $(script) : updateOnly : [ IsUpdateHaikuImageOnly ] ; -AddVariableToScript $(script) : stripOptionalPackageDebugSymbols - : $(HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES) ; AddTargetVariableToScript $(script) : <build>addattr ; AddTargetVariableToScript $(script) : <build>bfs_shell : bfsShell ; AddTargetVariableToScript $(script) : <build>fs_shell_command : fsShellCommand ; diff --git a/build/jam/ImageRules b/build/jam/ImageRules index 48ebb82..c227540 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -283,16 +283,17 @@ rule CopyDirectoryToContainer container : directoryTokens : sourceDirectory } rule ExtractArchiveToContainer container : directoryTokens : archiveFile - : extractedSubDir + : extractedSubDir : stripDebugSymbols { # ExtractArchiveToContainer <container> : <directory> : <archiveFile> - # : <extractedSubDir> ; + # : <extractedSubDir> : <stripDebugSymbols> ; local directory = [ AddDirectoryToContainer $(container) : $(directoryTokens) ] ; ARCHIVE_FILES_TO_INSTALL on $(directory) += $(archiveFile) ; ARCHIVE_SUBDIR_TO_INSTALL_FROM on $(archiveFile) = $(extractedSubDir) ; + ARCHIVE_FILES_TO_STRIP on $(archiveFile) = $(stripDebugSymbols) ; } rule AddDriversToContainer container : relativeDirectoryTokens : targets @@ -607,6 +608,11 @@ rule CreateContainerExtractFilesScript container : script ARCHIVE_SUBDIR_TO_INSTALL_FROM on $(dummyTarget) = $(extractedSubDir:E=.) ; + local stripDebugSymbols = [ on $(archiveFile) + return $(ARCHIVE_FILES_TO_STRIP) ] ; + STRIP_DEBUG_SYMBOLS_FROM_ARCHIVE on $(dummyTarget) = + $(stripDebugSymbols) ; + Depends $(dummyTarget) : $(initScript) $(archiveFile) $(serializationDependency) ; Depends $(script) : $(dummyTarget) ; @@ -622,7 +628,8 @@ rule CreateContainerExtractFilesScript container : script actions AddExtractFileToContainerExtractFilesScript { echo extractFile "\"$(2[2])\"" "\"$(TARGET_DIR)\"" \ - "\"$(ARCHIVE_SUBDIR_TO_INSTALL_FROM)\"" >> $(2[1]) + "\"$(ARCHIVE_SUBDIR_TO_INSTALL_FROM)\"" \ + "\"$(STRIP_DEBUG_SYMBOLS_FROM_ARCHIVE)\"" >> $(2[1]) } @@ -729,7 +736,7 @@ rule AddWifiFirmwareToHaikuImage driver : package : archive : extract } rule ExtractArchiveToHaikuImage dirTokens : archiveFile : alwaysUpdate - : extractedSubDir + : extractedSubDir : stripDebugSymbols { # ExtractArchiveToHaikuImage <dirTokens> : <archiveFile> : <alwaysUpdate> # : <extractedSubDir> ; @@ -738,7 +745,7 @@ rule ExtractArchiveToHaikuImage dirTokens : archiveFile : alwaysUpdate # requested. if ! [ IsUpdateHaikuImageOnly ] || $(alwaysUpdate) { ExtractArchiveToContainer $(HAIKU_IMAGE_CONTAINER_NAME) : $(dirTokens) - : $(archiveFile) : $(extractedSubDir) ; + : $(archiveFile) : $(extractedSubDir) : $(stripDebugSymbols) ; } } @@ -825,6 +832,7 @@ rule InstallSourceArchive file : url } rule InstallOptionalHaikuImagePackage package : url : dirTokens : isCDPackage + : stripDebugSymbols { # download archive file local archiveFile = [ DownloadFile $(package) : $(url) ] ; @@ -835,8 +843,17 @@ rule InstallOptionalHaikuImagePackage package : url : dirTokens : isCDPackage # copy onto image AddFilesToHaikuImage _packages_ : $(archiveFile) ; } else { + if $(HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES) = 1 { + stripDebugSymbols ?= 1 ; + # The script will only test for = 1. This is in case someone + # manually set the flag 'true' + if $(stripDebugSymbols) = true { + stripDebugSymbols = 1 ; + } + } # extract onto image - ExtractArchiveToHaikuImage $(dirTokens) : $(archiveFile) ; + ExtractArchiveToHaikuImage $(dirTokens) : $(archiveFile) + : : : $(stripDebugSymbols) ; } } @@ -1472,7 +1489,7 @@ actions BuildCDBootPPCImage1 bind MAPS || \ genisoimage -v -hfs -part -map $(MAPS) -no-desktop -hfs-volid bootimg \ -V bootimg -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/ppc -prep-boot \ - ppc/$(>[2]:D=) -r -o $(<) $(HAIKU_OUTPUT_DIR)/cd + ppc/$(>[2]:D=) -r -o $(<) $(HAIKU_OUTPUT_DIR)/cd #$(RM) -R $(HAIKU_OUTPUT_DIR)/cd } diff --git a/build/scripts/build_haiku_image b/build/scripts/build_haiku_image index d6001f9..155e5f6 100755 --- a/build/scripts/build_haiku_image +++ b/build/scripts/build_haiku_image @@ -16,7 +16,6 @@ set -o errexit # dontClearImage # isVMwareImage # optionalPackageDescriptions -# stripOptionalPackageDebugSymbols # # addattr # copyattr @@ -158,10 +157,11 @@ stripDebugInfo() extractFile() { - # extractFile <archive> <directory> + # extractFile <archive> <directory> <extractedSubDir> <stripDebugSymbols> archiveFile=$1 targetExtractedDir=$2 extractedSubDir=$3 + stripDebugSymbols=$4 echo "Extracting $archiveFile ..." @@ -188,7 +188,7 @@ extractFile() rm $extractDir/.OptionalPackageDescription fi - if [ "$stripOptionalPackageDebugSymbols" = "1" ]; then + if [ "$stripDebugSymbols" = "1" ]; then # strip executables in common/bin if [ -d $extractDir/common/bin ]; then for file in `find $extractDir/common/bin -type f -a -perm +100 \ ############################################################################ Commit: 7ae330f46b58a124c98e9ba454ed1cf8e94955ac URL: http://cgit.haiku-os.org/haiku/commit/?id=7ae330f Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Sun Sep 16 23:45:09 2012 UTC Updated comment. ---------------------------------------------------------------------------- diff --git a/build/jam/UserBuildConfig.ReadMe b/build/jam/UserBuildConfig.ReadMe index d1c9eb1..637de80 100644 --- a/build/jam/UserBuildConfig.ReadMe +++ b/build/jam/UserBuildConfig.ReadMe @@ -63,6 +63,7 @@ HAIKU_IMAGE_DIR = /tmp ; HAIKU_IMAGE_SIZE = 100 ; # Enable stripping the debug symbols from optional packages. +# Note, some optional packages may override this to prevent stripping. HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1 ; # Set image volume label to "Walter". Default label is "Haiku". ############################################################################ Commit: 5114fc1dd3084d01f4da858440b00ec749a74393 URL: http://cgit.haiku-os.org/haiku/commit/?id=5114fc1 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Sun Sep 16 23:45:44 2012 UTC Ticket: https://dev.haiku-os.org/ticket/8603 Ensure that wpa_supplicant does not get stripped. See #8603 for history. ---------------------------------------------------------------------------- diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 9541517..592acfd 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -848,7 +848,7 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 { AddHeaderDirectoryToHaikuImage libs tiff : 3rdparty ; AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ; - CopyDirectoryToHaikuImage develop headers : + CopyDirectoryToHaikuImage develop headers : [ FDirName $(HAIKU_FREETYPE_DIR) develop headers 3rdparty ] ; CopyDirectoryToHaikuImage develop headers : $(HAIKU_JPEG_HEADERS) : 3rdparty ; @@ -2050,11 +2050,13 @@ if [ IsOptionalHaikuImagePackageAdded wpa_supplicant ] { } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage wpa_supplicant-0.7.3-x86-gcc4-2012-04-03.zip - : $(baseURL)/wpa_supplicant-0.7.3-x86-gcc4-2012-04-03.zip ; + : $(baseURL)/wpa_supplicant-0.7.3-x86-gcc4-2012-04-03.zip + : : : false ; } else { InstallOptionalHaikuImagePackage wpa_supplicant-0.7.3-x86-gcc2-2012-04-03.zip - : $(baseURL)/wpa_supplicant-0.7.3-x86-gcc2-2012-04-03.zip ; + : $(baseURL)/wpa_supplicant-0.7.3-x86-gcc2-2012-04-03.zip + : : : false ; } } ############################################################################ Revision: hrev44648 Commit: d4cc0de33ee72f0cd9d1b607e8dbcadce7d75400 URL: http://cgit.haiku-os.org/haiku/commit/?id=d4cc0de Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Sun Sep 16 23:47:29 2012 UTC Re-enable stripping of debug symbols for @alpha-*, @nightly-* For a GCC 2 hybrid image, this brings the size down from 781MiB to 743MiB. ---------------------------------------------------------------------------- diff --git a/build/jam/ReleaseBuildProfiles b/build/jam/ReleaseBuildProfiles index 8857651..8de37d9 100644 --- a/build/jam/ReleaseBuildProfiles +++ b/build/jam/ReleaseBuildProfiles @@ -16,6 +16,7 @@ switch $(HAIKU_BUILD_PROFILE) { HAIKU_ROOT_USER_REAL_NAME = "Yourself" ; AddGroupToHaikuImage party : 101 : user sshd ; HAIKU_IMAGE_HOST_NAME = shredder ; + HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1 ; HAIKU_IMAGE_SIZE = 800 ; AddOptionalHaikuImagePackages TimGMSoundFont TrackerNewTemplates @@ -37,6 +38,7 @@ switch $(HAIKU_BUILD_PROFILE) { HAIKU_ROOT_USER_NAME = user ; HAIKU_ROOT_USER_REAL_NAME = "Yourself" ; AddGroupToHaikuImage party : 101 : user sshd ; + HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1 ; HAIKU_IMAGE_HOST_NAME = shredder ; HAIKU_IMAGE_SIZE = 600 ;