diff mbox series

[master] ti-llvm: adopt an LLVM fix for buildpaths errors

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

Commit Message

Denys Dmytriyenko July 16, 2024, 1:50 a.m. UTC
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(+)

Comments

Ryan Eatmon July 17, 2024, 12:37 a.m. UTC | #1
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
Ryan Eatmon July 17, 2024, 1:36 a.m. UTC | #2
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?
Ryan Eatmon July 17, 2024, 1:45 p.m. UTC | #3
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?
Denys Dmytriyenko July 17, 2024, 4:56 p.m. UTC | #4
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.
Ryan Eatmon July 17, 2024, 5:03 p.m. UTC | #5
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. =)
Denys Dmytriyenko July 17, 2024, 5:16 p.m. UTC | #6
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 mbox series

Patch

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}