The gcc that comes with OE-core supports a compiler option -ffile-prefix-map. This option is essential in order to support binary reproducibility of packages built from sources containing absolute paths due to various __FILE__ macros. These can contain absolute path names of source code files as encountered on the build host machine. This affects basically all 150+ packaged kernel-module*, out of tree modules (everybody inheriting module.bbclass, i.e. lttng-modules) and potentially individual recipes.
While this compiler options is very useful, the presence cannot be assumed as we may be building using an external toolchain. The detection code was already present in kernel.bbclass. Since we may want to use this option (if present) in additional places, it makes sense putting the detection code in a separate bbclass as opposed to replicating it each time. Not being aware of any better place, I put the code into a new bbclass "compiler-options.bbclass" This patchset refactors kernel.bbclass and module.bbclass to use the new compiler-options.bbclass. For a good measure the patcheset also contains a modified recipe for pulsaudio, demonstrating how to use the compiler-options in a recipe. Juro Bystricky (4): compiler-options.bbclass: provide and validate options kernel.bbclass: use class compiler-options module.bbclass: improve reproducibility pulseaudio: improve reproducibility meta/classes/compiler-options.bbclass | 24 +++++++ meta/classes/kernel.bbclass | 15 +---- meta/classes/module.bbclass | 5 +- .../pulseaudio/pulseaudio/no-builddir.patch | 74 ++++++++++++++++++++++ .../pulseaudio/pulseaudio_11.1.bb | 12 +++- 5 files changed, 115 insertions(+), 15 deletions(-) create mode 100644 meta/classes/compiler-options.bbclass create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/no-builddir.patch -- 2.7.4 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core