From 2afe86f7c61995cc4065af1dacba093f0974adfd Mon Sep 17 00:00:00 2001 From: Fathi Boudra Date: Thu, 13 Sep 2012 09:25:26 +0300 Subject: Origen UEFI (restore previous repo) --- Fixed_GCC_4.6_build.patch | 31 +++++++++++++++ ...uild_with_-Werror_unused-but-set-variable.patch | 18 +++++++++ Removed_-combine.patch | 27 +++++++++++++ uefi.sh | 44 ++++++++++++++++++++++ 4 files changed, 120 insertions(+) create mode 100644 Fixed_GCC_4.6_build.patch create mode 100644 Fixed_debug_build_with_-Werror_unused-but-set-variable.patch create mode 100644 Removed_-combine.patch create mode 100755 uefi.sh diff --git a/Fixed_GCC_4.6_build.patch b/Fixed_GCC_4.6_build.patch new file mode 100644 index 0000000..e9e47c2 --- /dev/null +++ b/Fixed_GCC_4.6_build.patch @@ -0,0 +1,31 @@ +From 336f97bb69b615f681a7dd8d3de74b92914c16ea Mon Sep 17 00:00:00 2001 +From: Ryan Harkin +Date: Fri, 27 Jul 2012 15:40:30 +0100 +Subject: [PATCH] BaseTools: Fixed GCC 4.6 build (changed in tools_def.template) + +--- + BaseTools/Conf/tools_def.template | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/BaseTools/Conf/tools_def.template ++++ b/BaseTools/Conf/tools_def.template +@@ -2541,7 +2541,7 @@ DEFINE GCC_ALL_CC_FLAGS = -g + DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe + DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe + DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency +-DEFINE GCC_ARMGCC_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer ++DEFINE GCC_ARMGCC_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address + DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie + DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections + DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) +@@ -4871,8 +4871,8 @@ RELEASE_ARMLINUXGCC_ARM_ASM_FLAGS = $( + *_ARMLINUXGCC_ARM_SLINK_FLAGS = -rc + *_ARMLINUXGCC_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -Ttext=0x0 --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map + +- DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-address -O0 +-RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable ++ DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -fno-stack-protector -O0 ++RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -fno-stack-protector -Wno-unused-but-set-variable + + ################# + # ASM 16 linker defintions diff --git a/Fixed_debug_build_with_-Werror_unused-but-set-variable.patch b/Fixed_debug_build_with_-Werror_unused-but-set-variable.patch new file mode 100644 index 0000000..08e9cdb --- /dev/null +++ b/Fixed_debug_build_with_-Werror_unused-but-set-variable.patch @@ -0,0 +1,18 @@ +From: Fathi Boudra +Subject: [PATCH] BaseTools: Fixed debug build with GCC 4.6 and -Werror=unused-but-set-variable + +--- + BaseTools/Conf/tools_def.template | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/BaseTools/Conf/tools_def.template ++++ b/BaseTools/Conf/tools_def.template +@@ -4871,7 +4871,7 @@ RELEASE_ARMLINUXGCC_ARM_ASM_FLAGS = $( + *_ARMLINUXGCC_ARM_SLINK_FLAGS = -rc + *_ARMLINUXGCC_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -Ttext=0x0 --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map + +- DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -fno-stack-protector -O0 ++ DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -fno-stack-protector -Wno-unused-but-set-variable -O0 + RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -fno-stack-protector -Wno-unused-but-set-variable + + ################# diff --git a/Removed_-combine.patch b/Removed_-combine.patch new file mode 100644 index 0000000..d5c8678 --- /dev/null +++ b/Removed_-combine.patch @@ -0,0 +1,27 @@ +From b99b2e59c2a54a7b0685508121789a243c68ef29 Mon Sep 17 00:00:00 2001 +From: Ryan Harkin +Date: Fri, 27 Jul 2012 15:37:01 +0100 +Subject: [PATCH] BaseTools: removed '-combine' from tools_def.template + +This option is not supported any more by the latest version of GCC (v4.6). + +Note from the GCC mailing-list: The -combine option has been removed, it +has been very buggy and has been superceeded by -flto. Either drop it, or +build with -flto. +--- + BaseTools/Conf/tools_def.template | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/BaseTools/Conf/tools_def.template ++++ b/BaseTools/Conf/tools_def.template +@@ -4813,8 +4813,8 @@ RELEASE_ARMGCC_ARM_ASM_FLAGS = $(ARCHA + *_ARMGCC_ARM_SLINK_FLAGS = -rc + *_ARMGCC_ARM_DLINK_FLAGS = $(ARCHDLINK_FLAGS) -Ttext=0x0 --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map + +- DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -combine -O0 +-RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -combine -Wno-unused ++ DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -O0 ++RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-unused + + #################################################################################### + # diff --git a/uefi.sh b/uefi.sh new file mode 100755 index 0000000..28a5a87 --- /dev/null +++ b/uefi.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# Script used by CI to build UEFI for Origen board +# Requirements: uuid-dev package + +set -e + +unset ARCH +export EDK_WORKSPACE=${WORKSPACE}/edk2/edk2 +export EDK_TOOLS_PATH=${EDK_WORKSPACE}/BaseTools + +# Get the sources +git clone git://git.linaro.org/mirror/edk2/edk2.git +git clone git://git.linaro.org/mirror/edk2/edk2-fatdriver2.git +cp -a ${WORKSPACE}/edk2-fatdriver2/FatPkg ${EDK_WORKSPACE}/ +git clone git://git.linaro.org/landing-teams/working/samsung/edk2-origen.git +cp -a ${WORKSPACE}/edk2-origen/SamsungPlatformPkg ${EDK_WORKSPACE}/ + +# Apply patches +cd ${EDK_WORKSPACE} +patch -p1 < ${WORKSPACE}/origen-uefi-ci/Removed_-combine.patch +patch -p1 < ${WORKSPACE}/origen-uefi-ci/Fixed_GCC_4.6_build.patch +patch -p1 < ${WORKSPACE}/origen-uefi-ci/Fixed_debug_build_with_-Werror_unused-but-set-variable.patch +cd ${WORKSPACE} + +# Create source tarball +tar -C ${WORKSPACE}/edk2 -jcf edk2-origen-uefi-`date +%Y%m%d`-${BUILD_NUMBER}.tar.bz2 edk2 + +# Fix WORKSPACE environment variable conflict with Jenkins +find ${EDK_WORKSPACE} -type f | xargs sed -i 's/WORKSPACE/EDK_WORKSPACE/g' + +# Get the toolchain +#wget --progress=dot -e dotbytes=1M http://releases.linaro.org/12.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux.tar.bz2 +#tar -jxf gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux.tar.bz2 +#export ARMLINUXGCC_TOOLS_PATH=${WORKSPACE}/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux/bin/ + +source ${EDK_WORKSPACE}/edksetup.sh + +make -C ${EDK_WORKSPACE}/BaseTools + +export ARCH=arm +build -a ARM -b DEBUG -t ARMLINUXGCC -p SamsungPlatformPkg/OrigenBoardPkg/OrigenBoardPkg-Exynos.dsc + +# Rename binaries +cp -a ${EDK_WORKSPACE}/Build/OrigenBoard-Exynos/DEBUG_ARMLINUXGCC/FV/ORIGENBOARD_EFI.fd ${EDK_WORKSPACE}/uefi_origen.bin -- cgit v1.2.3