Message ID | 20240716015013.3051611-2-denis@denix.org |
---|---|
State | Rejected |
Delegated to: | Ryan Eatmon |
Headers | show |
Series | [master] ti-llvm: adopt an LLVM fix for buildpaths errors | expand |
On 7/15/2024 8:50 PM, Denys Dmytriyenko wrote: > From: Denys Dmytriyenko <denys@konsulko.com> > > Make sure llvm-configs doesn't have absolute build paths. > > Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> > --- > meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > index 4b990b7f..810c603b 100644 > --- a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > +++ b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > @@ -62,6 +62,11 @@ EXTRA_OECONF += " --enable-targets="host,arm,c6000,msp430" \ > > EXTRA_OEMAKE += "LIBXML2_INC="${LIBXML2_INC}" LIBXML2_LIBS="${LIBXML2_LIBS}"" > > +# patch out build host paths for reproducibility > +do_compile:prepend() { > + sed -i -e "s,${WORKDIR},,g" ${LLVM_BUILD_DIR}/tools/llvm-config/Release/BuildVariables.inc > +} > + > do_compile:class-native() { > cd ${LLVM_BUILD_DIR} > I'm getting build errors with this. native: sed: can't read /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-linux/ti-llvm3.6-native/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: No such file or directory nativesdk: sed: can't read /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-nativesdk-arago-linux/nativesdk-ti-llvm3.6/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: No such file or directory
On 7/16/2024 7:37 PM, Ryan Eatmon via lists.yoctoproject.org wrote: > > > On 7/15/2024 8:50 PM, Denys Dmytriyenko wrote: >> From: Denys Dmytriyenko <denys@konsulko.com> >> >> Make sure llvm-configs doesn't have absolute build paths. >> >> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> >> --- >> meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >> b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >> index 4b990b7f..810c603b 100644 >> --- a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >> +++ b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >> @@ -62,6 +62,11 @@ EXTRA_OECONF += " >> --enable-targets="host,arm,c6000,msp430" \ >> EXTRA_OEMAKE += "LIBXML2_INC="${LIBXML2_INC}" >> LIBXML2_LIBS="${LIBXML2_LIBS}"" >> +# patch out build host paths for reproducibility >> +do_compile:prepend() { >> + sed -i -e "s,${WORKDIR},,g" >> ${LLVM_BUILD_DIR}/tools/llvm-config/Release/BuildVariables.inc >> +} >> + >> do_compile:class-native() { >> cd ${LLVM_BUILD_DIR} > > I'm getting build errors with this. > > native: > > sed: can't read > /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-linux/ti-llvm3.6-native/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: No such file or directory > > nativesdk: > > sed: can't read > /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-nativesdk-arago-linux/nativesdk-ti-llvm3.6/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: No such file or directory > I think that during the build it creates this file, but before the builds the files does not exist yet. Maybe you tested this against a built directory where the file existed but from a clean dir it fails?
On 7/16/2024 8:36 PM, Ryan Eatmon via lists.yoctoproject.org wrote: > > > On 7/16/2024 7:37 PM, Ryan Eatmon via lists.yoctoproject.org wrote: >> >> >> On 7/15/2024 8:50 PM, Denys Dmytriyenko wrote: >>> From: Denys Dmytriyenko <denys@konsulko.com> >>> >>> Make sure llvm-configs doesn't have absolute build paths. >>> >>> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> >>> --- >>> meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb | 5 +++++ >>> 1 file changed, 5 insertions(+) >>> >>> diff --git a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >>> b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >>> index 4b990b7f..810c603b 100644 >>> --- a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >>> +++ b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >>> @@ -62,6 +62,11 @@ EXTRA_OECONF += " >>> --enable-targets="host,arm,c6000,msp430" \ >>> EXTRA_OEMAKE += "LIBXML2_INC="${LIBXML2_INC}" >>> LIBXML2_LIBS="${LIBXML2_LIBS}"" >>> +# patch out build host paths for reproducibility >>> +do_compile:prepend() { >>> + sed -i -e "s,${WORKDIR},,g" >>> ${LLVM_BUILD_DIR}/tools/llvm-config/Release/BuildVariables.inc >>> +} >>> + >>> do_compile:class-native() { >>> cd ${LLVM_BUILD_DIR} >> >> I'm getting build errors with this. >> >> native: >> >> sed: can't read >> /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-linux/ti-llvm3.6-native/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: No such file or directory >> >> nativesdk: >> >> sed: can't read >> /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-nativesdk-arago-linux/nativesdk-ti-llvm3.6/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: No such file or directory >> > > I think that during the build it creates this file, but before the > builds the files does not exist yet. Maybe you tested this against a > built directory where the file existed but from a clean dir it fails? > Also, it looks the contents of the BuildVariables.inc might be in a "bad" state with this change. But I could be wrong as I don't know how all of this package works. #define LLVM_SRC_ROOT "/git" #define LLVM_OBJ_ROOT "/llvm-3.6.build" By just replacing the WORKDIR with "" we are pointing this file to the root directory where I doubt these things will be living. Again, without knowing how this package works and uses those two variables I can't speak as to the correctness of this. I agree it fixes the buildpaths issue, but does it break the software package at that point?
On Wed, Jul 17, 2024 at 08:45:58AM -0500, Ryan Eatmon wrote: > > > On 7/16/2024 8:36 PM, Ryan Eatmon via lists.yoctoproject.org wrote: > > > > > >On 7/16/2024 7:37 PM, Ryan Eatmon via lists.yoctoproject.org wrote: > >> > >> > >>On 7/15/2024 8:50 PM, Denys Dmytriyenko wrote: > >>>From: Denys Dmytriyenko <denys@konsulko.com> > >>> > >>>Make sure llvm-configs doesn't have absolute build paths. > >>> > >>>Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> > >>>--- > >>> meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb | 5 +++++ > >>> 1 file changed, 5 insertions(+) > >>> > >>>diff --git > >>>a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > >>>b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > >>>index 4b990b7f..810c603b 100644 > >>>--- a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > >>>+++ b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > >>>@@ -62,6 +62,11 @@ EXTRA_OECONF += " > >>>--enable-targets="host,arm,c6000,msp430" \ > >>> EXTRA_OEMAKE += "LIBXML2_INC="${LIBXML2_INC}" > >>>LIBXML2_LIBS="${LIBXML2_LIBS}"" > >>>+# patch out build host paths for reproducibility > >>>+do_compile:prepend() { > >>>+ sed -i -e "s,${WORKDIR},,g" > >>>${LLVM_BUILD_DIR}/tools/llvm-config/Release/BuildVariables.inc > >>>+} > >>>+ > >>> do_compile:class-native() { > >>> cd ${LLVM_BUILD_DIR} > >> > >>I'm getting build errors with this. > >> > >>native: > >> > >>sed: can't read /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-linux/ti-llvm3.6-native/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: > >>No such file or directory > >> > >>nativesdk: > >> > >>sed: can't read /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-nativesdk-arago-linux/nativesdk-ti-llvm3.6/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: > >>No such file or directory > >> > > > >I think that during the build it creates this file, but before the > >builds the files does not exist yet. Maybe you tested this > >against a built directory where the file existed but from a clean > >dir it fails? > > > > Also, it looks the contents of the BuildVariables.inc might be in a > "bad" state with this change. But I could be wrong as I don't know > how all of this package works. > > #define LLVM_SRC_ROOT "/git" > #define LLVM_OBJ_ROOT "/llvm-3.6.build" > > By just replacing the WORKDIR with "" we are pointing this file to > the root directory where I doubt these things will be living. > Again, without knowing how this package works and uses those two > variables I can't speak as to the correctness of this. I agree it > fixes the buildpaths issue, but does it break the software package > at that point? This is exactly what OE-Core does with upstream LLVM.
On 7/17/2024 11:56 AM, Denys Dmytriyenko wrote: > On Wed, Jul 17, 2024 at 08:45:58AM -0500, Ryan Eatmon wrote: >> >> >> On 7/16/2024 8:36 PM, Ryan Eatmon via lists.yoctoproject.org wrote: >>> >>> >>> On 7/16/2024 7:37 PM, Ryan Eatmon via lists.yoctoproject.org wrote: >>>> >>>> >>>> On 7/15/2024 8:50 PM, Denys Dmytriyenko wrote: >>>>> From: Denys Dmytriyenko <denys@konsulko.com> >>>>> >>>>> Make sure llvm-configs doesn't have absolute build paths. >>>>> >>>>> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> >>>>> --- >>>>> meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb | 5 +++++ >>>>> 1 file changed, 5 insertions(+) >>>>> >>>>> diff --git >>>>> a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >>>>> b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >>>>> index 4b990b7f..810c603b 100644 >>>>> --- a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >>>>> +++ b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb >>>>> @@ -62,6 +62,11 @@ EXTRA_OECONF += " >>>>> --enable-targets="host,arm,c6000,msp430" \ >>>>> EXTRA_OEMAKE += "LIBXML2_INC="${LIBXML2_INC}" >>>>> LIBXML2_LIBS="${LIBXML2_LIBS}"" >>>>> +# patch out build host paths for reproducibility >>>>> +do_compile:prepend() { >>>>> + sed -i -e "s,${WORKDIR},,g" >>>>> ${LLVM_BUILD_DIR}/tools/llvm-config/Release/BuildVariables.inc >>>>> +} >>>>> + >>>>> do_compile:class-native() { >>>>> cd ${LLVM_BUILD_DIR} >>>> >>>> I'm getting build errors with this. >>>> >>>> native: >>>> >>>> sed: can't read /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-linux/ti-llvm3.6-native/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: >>>> No such file or directory >>>> >>>> nativesdk: >>>> >>>> sed: can't read /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-nativesdk-arago-linux/nativesdk-ti-llvm3.6/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: >>>> No such file or directory >>>> >>> >>> I think that during the build it creates this file, but before the >>> builds the files does not exist yet. Maybe you tested this >>> against a built directory where the file existed but from a clean >>> dir it fails? >>> >> >> Also, it looks the contents of the BuildVariables.inc might be in a >> "bad" state with this change. But I could be wrong as I don't know >> how all of this package works. >> >> #define LLVM_SRC_ROOT "/git" >> #define LLVM_OBJ_ROOT "/llvm-3.6.build" >> >> By just replacing the WORKDIR with "" we are pointing this file to >> the root directory where I doubt these things will be living. >> Again, without knowing how this package works and uses those two >> variables I can't speak as to the correctness of this. I agree it >> fixes the buildpaths issue, but does it break the software package >> at that point? > > This is exactly what OE-Core does with upstream LLVM. > Good enough for me then. =)
On Wed, Jul 17, 2024 at 12:03:57PM -0500, Ryan Eatmon wrote: > > > On 7/17/2024 11:56 AM, Denys Dmytriyenko wrote: > >On Wed, Jul 17, 2024 at 08:45:58AM -0500, Ryan Eatmon wrote: > >> > >> > >>On 7/16/2024 8:36 PM, Ryan Eatmon via lists.yoctoproject.org wrote: > >>> > >>> > >>>On 7/16/2024 7:37 PM, Ryan Eatmon via lists.yoctoproject.org wrote: > >>>> > >>>> > >>>>On 7/15/2024 8:50 PM, Denys Dmytriyenko wrote: > >>>>>From: Denys Dmytriyenko <denys@konsulko.com> > >>>>> > >>>>>Make sure llvm-configs doesn't have absolute build paths. > >>>>> > >>>>>Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> > >>>>>--- > >>>>> meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb | 5 +++++ > >>>>> 1 file changed, 5 insertions(+) > >>>>> > >>>>>diff --git > >>>>>a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > >>>>>b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > >>>>>index 4b990b7f..810c603b 100644 > >>>>>--- a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > >>>>>+++ b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb > >>>>>@@ -62,6 +62,11 @@ EXTRA_OECONF += " > >>>>>--enable-targets="host,arm,c6000,msp430" \ > >>>>> EXTRA_OEMAKE += "LIBXML2_INC="${LIBXML2_INC}" > >>>>>LIBXML2_LIBS="${LIBXML2_LIBS}"" > >>>>>+# patch out build host paths for reproducibility > >>>>>+do_compile:prepend() { > >>>>>+ sed -i -e "s,${WORKDIR},,g" > >>>>>${LLVM_BUILD_DIR}/tools/llvm-config/Release/BuildVariables.inc > >>>>>+} > >>>>>+ > >>>>> do_compile:class-native() { > >>>>> cd ${LLVM_BUILD_DIR} > >>>> > >>>>I'm getting build errors with this. > >>>> > >>>>native: > >>>> > >>>>sed: can't read /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-linux/ti-llvm3.6-native/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: > >>>>No such file or directory > >>>> > >>>>nativesdk: > >>>> > >>>>sed: can't read /scratch/jenkins_builds/arago-master-wip/build/build/arago-tmp-default-glibc/work/x86_64-nativesdk-arago-linux/nativesdk-ti-llvm3.6/3.6/llvm-3.6.build/tools/llvm-config/Release/BuildVariables.inc: > >>>>No such file or directory > >>>> > >>> > >>>I think that during the build it creates this file, but before the > >>>builds the files does not exist yet. Maybe you tested this > >>>against a built directory where the file existed but from a clean > >>>dir it fails? > >>> > >> > >>Also, it looks the contents of the BuildVariables.inc might be in a > >>"bad" state with this change. But I could be wrong as I don't know > >>how all of this package works. > >> > >>#define LLVM_SRC_ROOT "/git" > >>#define LLVM_OBJ_ROOT "/llvm-3.6.build" > >> > >>By just replacing the WORKDIR with "" we are pointing this file to > >>the root directory where I doubt these things will be living. > >>Again, without knowing how this package works and uses those two > >>variables I can't speak as to the correctness of this. I agree it > >>fixes the buildpaths issue, but does it break the software package > >>at that point? > > > >This is exactly what OE-Core does with upstream LLVM. > > > > Good enough for me then. =) https://git.openembedded.org/openembedded-core/commit/?h=master-next&id=55c1cccff5afc1230d3c2287bc0fdaa579bf2743 The only difference is that much newer LLVM 18.1.8 (vs. 3.6 here) apparently generates BuildVariables.inc file in do_configure() and not in do_compile() so it already exists for the sed command...
diff --git a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb index 4b990b7f..810c603b 100644 --- a/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb +++ b/meta-arago-extras/recipes-core/llvm/ti-llvm3.6_3.6.bb @@ -62,6 +62,11 @@ EXTRA_OECONF += " --enable-targets="host,arm,c6000,msp430" \ EXTRA_OEMAKE += "LIBXML2_INC="${LIBXML2_INC}" LIBXML2_LIBS="${LIBXML2_LIBS}"" +# patch out build host paths for reproducibility +do_compile:prepend() { + sed -i -e "s,${WORKDIR},,g" ${LLVM_BUILD_DIR}/tools/llvm-config/Release/BuildVariables.inc +} + do_compile:class-native() { cd ${LLVM_BUILD_DIR}