intel-graphics-compiler: improve src package reproducibility

Improve the reproducibility of intel-graphics-compiler-src by replacing
the absolute build path with relative one in bison compiled files.
The --file-prefix-map could only work on bison 3.7 onward so add it only
when bison is newer than 3.7.

│ │ │ -#ifndef
YY_CISA_YOCTO_POKY_MASTER_BUILD_TMP_WORK_SKYLAKE_64_POKY_LINUX_INTEL_GRAPHICS_COMPILER_1_0_4241_R0_BUILD_IGC_VISA_CISA_TAB_HPP_INCLUDED
│ │ │ -# define
YY_CISA_YOCTO_POKY_MASTER_BUILD_TMP_WORK_SKYLAKE_64_POKY_LINUX_INTEL_GRAPHICS_COMPILER_1_0_4241_R0_BUILD_IGC_VISA_CISA_TAB_HPP_INCLUDED
│ │ │ +#ifndef
YY_CISA_YOCTO_POKY_MASTER_BUILD_2_TMP_WORK_SKYLAKE_64_POKY_LINUX_INTEL_GRAPHICS_COMPILER_1_0_4241_R0_BUILD_IGC_VISA_CISA_TAB_HPP_INCLUDED
│ │ │ +# define
YY_CISA_YOCTO_POKY_MASTER_BUILD_2_TMP_WORK_SKYLAKE_64_POKY_LINUX_INTEL_GRAPHICS_COMPILER_1_0_4241_R0_BUILD_IGC_VISA_CISA_TAB_HPP_INCLUDED

Also suppress #line directives in scanner that have the build path:

│ │ │ -#line 2593
"/yocto/poky-master/build/tmp/work/skylake-64-poky-linux/intel-graphics-compiler/1.0.4241-r0/build/IGC/visa/lex.CISA.cpp"
│ │ │ +#line 2593
"/yocto/poky-master/build-2/tmp/work/skylake-64-poky-linux/intel-graphics-compiler/1.0.4241-r0/build/IGC/visa/lex.CISA.cpp"

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Lee Chee Yang 2020-09-22 10:33:59 +08:00 committed by Anuj Mittal
parent 254e3a79b3
commit a01cbe26e3
2 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,35 @@
From 88b961ce4e2c9744631c51d13fa638e8a8a6c2a9 Mon Sep 17 00:00:00 2001
From: Lee Chee Yang <chee.yang.lee@intel.com>
Date: Wed, 2 Sep 2020 08:28:35 +0800
Subject: [PATCH] Improve Reproducibility for src package
Improve reproducibility for intel-graphics-compiler-src package.
needs to pass build path as environment variable to the build.
this only works on bison 3.7 onward, hence check for bison version
before adding the flags.
Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream]
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
---
visa/CMakeLists.txt | 7 +++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/visa/CMakeLists.txt b/visa/CMakeLists.txt
index 9c169592..ecea91db 100644
--- a/visa/CMakeLists.txt
+++ b/visa/CMakeLists.txt
@@ -105,8 +108,11 @@ endif()
# Set up the bison and flex targets. These commands will set up commands to generate the appropriate
# source files from the input grammars. It will also set up the dependencies correctly for any
# library or executable that uses the generated source
-BISON_TARGET(CISAParser CISA.y ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp COMPILE_FLAGS "-vt -p CISA")
-FLEX_TARGET(CISAScanner CISA.l ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp COMPILE_FLAGS "-PCISA ${WIN_FLEX_FLAG}")
+if(BISON_VERSION VERSION_GREATER_EQUAL "3.7.0")
+ set(BISON_EXTRA_FLAGS " --file-prefix-map=$ENV{B}=/igc/ ")
+endif()
+BISON_TARGET(CISAParser CISA.y ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp COMPILE_FLAGS "-l -vt -p CISA ${BISON_EXTRA_FLAGS} ")
+FLEX_TARGET(CISAScanner CISA.l ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp COMPILE_FLAGS "-PCISA -L ${WIN_FLEX_FLAG} ")
ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser)
add_custom_target(CISAScanner_target DEPENDS ${FLEX_CISAScanner_OUTPUTS} ${BISON_CISAParser_OUTPUTS})
--
2.25.1

View File

@ -11,10 +11,14 @@ LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc
SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https; \
file://0001-skip-execution-of-ElfPackager.patch \
file://link-to-LLVMGenXIntrinsics.patch \
file://improve_src_package_reproducibility.patch \
"
SRCREV = "3623209b10b357ddb3a3d6eac3551c53ebc897f7"
# Used to replace with relative path in reproducibility patch
export B
S = "${WORKDIR}/git"
inherit cmake