diff mbox series

[v3,1/3] package/blake3: add new host package

Message ID 20240704123452.3535612-2-heiko.thiery@gmail.com
State Changes Requested
Headers show
Series package/ccache: bump version | expand

Commit Message

Heiko Thiery July 4, 2024, 12:34 p.m. UTC
This package is used and required for ccache update.

Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
---

v2:
    - on change

v3:
    - fix BLAKE3_LICENSE_FILES and corresponding hash values


 DEVELOPERS                 |  1 +
 package/blake3/blake3.hash |  3 +++
 package/blake3/blake3.mk   | 20 ++++++++++++++++++++
 3 files changed, 24 insertions(+)
 create mode 100644 package/blake3/blake3.hash
 create mode 100644 package/blake3/blake3.mk

Comments

Arnout Vandecappelle July 12, 2024, 8:38 a.m. UTC | #1
Hi Heiko,

On 04/07/2024 14:34, Heiko Thiery wrote:
> This package is used and required for ccache update.
> 
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> ---
> 
> v2:
>      - on change
> 
> v3:
>      - fix BLAKE3_LICENSE_FILES and corresponding hash values
> 
> 
>   DEVELOPERS                 |  1 +
>   package/blake3/blake3.hash |  3 +++
>   package/blake3/blake3.mk   | 20 ++++++++++++++++++++
>   3 files changed, 24 insertions(+)
>   create mode 100644 package/blake3/blake3.hash
>   create mode 100644 package/blake3/blake3.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 90d1a111ab..46fe3cd2e1 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1359,6 +1359,7 @@ F:	configs/kontron_bl_imx8mm_defconfig
>   F:	configs/kontron_smarc_sal28_defconfig
>   F:	configs/kontron_pitx_imx8m_defconfig
>   F:	package/altera-stapl/
> +F:	package/blake3/
>   F:	package/ipmitool/
>   F:	package/libnetconf2/
>   F:	package/libyang/
> diff --git a/package/blake3/blake3.hash b/package/blake3/blake3.hash
> new file mode 100644
> index 0000000000..2a00d19b02
> --- /dev/null
> +++ b/package/blake3/blake3.hash
> @@ -0,0 +1,3 @@
> +# sha256 computed locally
> +sha256  822cd37f70152e5985433d2c50c8f6b2ec83aaf11aa31be9fe71486a91744f37  blake3-1.5.1.tar.gz
> +sha256  6a94bedb8b707ed97f6e310d0d015ab14e0683ffa0a612b02958581b9cc9fc0e  LICENSE
> diff --git a/package/blake3/blake3.mk b/package/blake3/blake3.mk
> new file mode 100644
> index 0000000000..76e4e32e7a
> --- /dev/null
> +++ b/package/blake3/blake3.mk
> @@ -0,0 +1,20 @@
> +################################################################################
> +#
> +# blake3
> +#
> +################################################################################
> +
> +BLAKE3_VERSION = 1.5.1
> +BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,refs/tags/$(BLAKE3_VERSION))

  Why do you put the refs/tags here? It was necessary in one or two packages 
because of a conflict with a branch name, but I don't think that's the case 
here. I admit that there's a certain elegance to making it explicit that we want 
a tag, but then we really should be doing that everywhere...


> +BLAKE3_SUBDIR = c
> +BLAKE3_LICENSE = Apache-2.0, CC0-1.0
> +BLAKE3_LICENSE_FILES = LICENSE
> +
> +# We may be a ccache dependency, so we can't use ccache; reset the
> +# options set by the cmake infra.
> +HOST_BLAKE3_CONF_OPTS += \
> +	-DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \

  Why is this needed? And is it even a good idea? In pkg-cmake, this is defined 
as -DCMAKE_ASM_COMPILER="$$(HOSTAS)", and HOSTAS is simply "as" without any 
ccache. In fact, this changes it from "as" to "gcc" which I expect is not 
correct at all...

  Since you said you could respin this weekend, I will mark as Changes 
Requested, but it's possible that your respin only has some commit message 
changes of course.

  Regards,
  Arnout

> +	-UCMAKE_C_COMPILER_LAUNCHER \
> +	-UCMAKE_CXX_COMPILER_LAUNCHER
> +
> +$(eval $(host-cmake-package))
Heiko Thiery July 12, 2024, 8:41 a.m. UTC | #2
Hi,

Am Fr., 12. Juli 2024 um 10:38 Uhr schrieb Arnout Vandecappelle
<arnout@mind.be>:
>
>   Hi Heiko,
>
> On 04/07/2024 14:34, Heiko Thiery wrote:
> > This package is used and required for ccache update.
> >
> > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> > ---
> >
> > v2:
> >      - on change
> >
> > v3:
> >      - fix BLAKE3_LICENSE_FILES and corresponding hash values
> >
> >
> >   DEVELOPERS                 |  1 +
> >   package/blake3/blake3.hash |  3 +++
> >   package/blake3/blake3.mk   | 20 ++++++++++++++++++++
> >   3 files changed, 24 insertions(+)
> >   create mode 100644 package/blake3/blake3.hash
> >   create mode 100644 package/blake3/blake3.mk
> >
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 90d1a111ab..46fe3cd2e1 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -1359,6 +1359,7 @@ F:      configs/kontron_bl_imx8mm_defconfig
> >   F:  configs/kontron_smarc_sal28_defconfig
> >   F:  configs/kontron_pitx_imx8m_defconfig
> >   F:  package/altera-stapl/
> > +F:   package/blake3/
> >   F:  package/ipmitool/
> >   F:  package/libnetconf2/
> >   F:  package/libyang/
> > diff --git a/package/blake3/blake3.hash b/package/blake3/blake3.hash
> > new file mode 100644
> > index 0000000000..2a00d19b02
> > --- /dev/null
> > +++ b/package/blake3/blake3.hash
> > @@ -0,0 +1,3 @@
> > +# sha256 computed locally
> > +sha256  822cd37f70152e5985433d2c50c8f6b2ec83aaf11aa31be9fe71486a91744f37  blake3-1.5.1.tar.gz
> > +sha256  6a94bedb8b707ed97f6e310d0d015ab14e0683ffa0a612b02958581b9cc9fc0e  LICENSE
> > diff --git a/package/blake3/blake3.mk b/package/blake3/blake3.mk
> > new file mode 100644
> > index 0000000000..76e4e32e7a
> > --- /dev/null
> > +++ b/package/blake3/blake3.mk
> > @@ -0,0 +1,20 @@
> > +################################################################################
> > +#
> > +# blake3
> > +#
> > +################################################################################
> > +
> > +BLAKE3_VERSION = 1.5.1
> > +BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,refs/tags/$(BLAKE3_VERSION))
>
>   Why do you put the refs/tags here? It was necessary in one or two packages
> because of a conflict with a branch name, but I don't think that's the case
> here. I admit that there's a certain elegance to making it explicit that we want
> a tag, but then we really should be doing that everywhere...
>
>
> > +BLAKE3_SUBDIR = c
> > +BLAKE3_LICENSE = Apache-2.0, CC0-1.0
> > +BLAKE3_LICENSE_FILES = LICENSE
> > +
> > +# We may be a ccache dependency, so we can't use ccache; reset the
> > +# options set by the cmake infra.
> > +HOST_BLAKE3_CONF_OPTS += \
> > +     -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
>
>   Why is this needed? And is it even a good idea? In pkg-cmake, this is defined
> as -DCMAKE_ASM_COMPILER="$$(HOSTAS)", and HOSTAS is simply "as" without any
> ccache. In fact, this changes it from "as" to "gcc" which I expect is not
> correct at all...
>
>   Since you said you could respin this weekend, I will mark as Changes
> Requested, but it's possible that your respin only has some commit message
> changes of course.

ok, I will recheck the things you mentioned and come back with
info/respin at the weekend.

Thanks
--
Heiko

>
>   Regards,
>   Arnout
>
> > +     -UCMAKE_C_COMPILER_LAUNCHER \
> > +     -UCMAKE_CXX_COMPILER_LAUNCHER
> > +
> > +$(eval $(host-cmake-package))
Heiko Thiery July 12, 2024, 7:08 p.m. UTC | #3
Hi Arnout,

Am Fr., 12. Juli 2024 um 10:38 Uhr schrieb Arnout Vandecappelle
<arnout@mind.be>:
>
>   Hi Heiko,
>
> On 04/07/2024 14:34, Heiko Thiery wrote:
> > This package is used and required for ccache update.
> >
> > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> > ---
> >
> > v2:
> >      - on change
> >
> > v3:
> >      - fix BLAKE3_LICENSE_FILES and corresponding hash values
> >
> >
> >   DEVELOPERS                 |  1 +
> >   package/blake3/blake3.hash |  3 +++
> >   package/blake3/blake3.mk   | 20 ++++++++++++++++++++
> >   3 files changed, 24 insertions(+)
> >   create mode 100644 package/blake3/blake3.hash
> >   create mode 100644 package/blake3/blake3.mk
> >
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 90d1a111ab..46fe3cd2e1 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -1359,6 +1359,7 @@ F:      configs/kontron_bl_imx8mm_defconfig
> >   F:  configs/kontron_smarc_sal28_defconfig
> >   F:  configs/kontron_pitx_imx8m_defconfig
> >   F:  package/altera-stapl/
> > +F:   package/blake3/
> >   F:  package/ipmitool/
> >   F:  package/libnetconf2/
> >   F:  package/libyang/
> > diff --git a/package/blake3/blake3.hash b/package/blake3/blake3.hash
> > new file mode 100644
> > index 0000000000..2a00d19b02
> > --- /dev/null
> > +++ b/package/blake3/blake3.hash
> > @@ -0,0 +1,3 @@
> > +# sha256 computed locally
> > +sha256  822cd37f70152e5985433d2c50c8f6b2ec83aaf11aa31be9fe71486a91744f37  blake3-1.5.1.tar.gz
> > +sha256  6a94bedb8b707ed97f6e310d0d015ab14e0683ffa0a612b02958581b9cc9fc0e  LICENSE
> > diff --git a/package/blake3/blake3.mk b/package/blake3/blake3.mk
> > new file mode 100644
> > index 0000000000..76e4e32e7a
> > --- /dev/null
> > +++ b/package/blake3/blake3.mk
> > @@ -0,0 +1,20 @@
> > +################################################################################
> > +#
> > +# blake3
> > +#
> > +################################################################################
> > +
> > +BLAKE3_VERSION = 1.5.1
> > +BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,refs/tags/$(BLAKE3_VERSION))
>
>   Why do you put the refs/tags here? It was necessary in one or two packages
> because of a conflict with a branch name, but I don't think that's the case
> here. I admit that there's a certain elegance to making it explicit that we want
> a tag, but then we really should be doing that everywhere...

You are right. I changed it to:
BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,$(BLAKE3_VERSION))

I think this is what you expect.

>
> > +BLAKE3_SUBDIR = c
> > +BLAKE3_LICENSE = Apache-2.0, CC0-1.0
> > +BLAKE3_LICENSE_FILES = LICENSE
> > +
> > +# We may be a ccache dependency, so we can't use ccache; reset the
> > +# options set by the cmake infra.
> > +HOST_BLAKE3_CONF_OPTS += \
> > +     -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
>
>   Why is this needed? And is it even a good idea? In pkg-cmake, this is defined
> as -DCMAKE_ASM_COMPILER="$$(HOSTAS)", and HOSTAS is simply "as" without any
> ccache. In fact, this changes it from "as" to "gcc" which I expect is not
> correct at all...

When not defining that I got the errror:

[ 25%] Building C object CMakeFiles/blake3.dir/blake3_portable.c.o
[ 37%] Building ASM object CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o
[ 50%] Building C object CMakeFiles/blake3.dir/blake3_dispatch.c.o
Assembler messages:
Fatal error: bad defsym; format is --defsym name=value
make[3]: *** [CMakeFiles/blake3.dir/build.make:117:
CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o] Error 1
make[3]: *** Waiting for unfinished jobs....
[ 62%] Building ASM object CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o
Assembler messages:
Fatal error: bad defsym; format is --defsym name=value
make[3]: *** [CMakeFiles/blake3.dir/build.make:130:
CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o] Error 1
make[3]: Leaving directory
'/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
make[2]: *** [CMakeFiles/Makefile2:83: CMakeFiles/blake3.dir/all] Error 2
make[2]: Leaving directory
'/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
make[1]: *** [Makefile:136: all] Error 2
make[1]: Leaving directory
'/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
make: *** [package/pkg-generic.mk:283:
/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/.stamp_built]
Error 2

So when changing to use gcc instead of as it works.

I tried to build on my host and see that cmake sets the var
"CMAKE_ASM_COMPILER=/usr/bin/cc". When overwriting it with as it also
does not build.
Arnout Vandecappelle July 12, 2024, 7:21 p.m. UTC | #4
On 12/07/2024 21:08, Heiko Thiery wrote:
> Hi Arnout,
> 
> Am Fr., 12. Juli 2024 um 10:38 Uhr schrieb Arnout Vandecappelle
> <arnout@mind.be>:
>>
>>    Hi Heiko,
>>
>> On 04/07/2024 14:34, Heiko Thiery wrote:
[snip]

>>> +HOST_BLAKE3_CONF_OPTS += \
>>> +     -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
>>
>>    Why is this needed? And is it even a good idea? In pkg-cmake, this is defined
>> as -DCMAKE_ASM_COMPILER="$$(HOSTAS)", and HOSTAS is simply "as" without any
>> ccache. In fact, this changes it from "as" to "gcc" which I expect is not
>> correct at all...
> 
> When not defining that I got the errror:
> 
> [ 25%] Building C object CMakeFiles/blake3.dir/blake3_portable.c.o
> [ 37%] Building ASM object CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o
> [ 50%] Building C object CMakeFiles/blake3.dir/blake3_dispatch.c.o
> Assembler messages:
> Fatal error: bad defsym; format is --defsym name=value
> make[3]: *** [CMakeFiles/blake3.dir/build.make:117:
> CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o] Error 1
> make[3]: *** Waiting for unfinished jobs....
> [ 62%] Building ASM object CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o
> Assembler messages:
> Fatal error: bad defsym; format is --defsym name=value
> make[3]: *** [CMakeFiles/blake3.dir/build.make:130:
> CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o] Error 1
> make[3]: Leaving directory
> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> make[2]: *** [CMakeFiles/Makefile2:83: CMakeFiles/blake3.dir/all] Error 2
> make[2]: Leaving directory
> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> make[1]: *** [Makefile:136: all] Error 2
> make[1]: Leaving directory
> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> make: *** [package/pkg-generic.mk:283:
> /home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/.stamp_built]
> Error 2
> 
> So when changing to use gcc instead of as it works.
> 
> I tried to build on my host and see that cmake sets the var
> "CMAKE_ASM_COMPILER=/usr/bin/cc". When overwriting it with as it also
> does not build.

  Hah, indeed, our setting of CMAKE_ASM_COMPILER is incorrect in pkg-cmake.mk. 
That's why it also had to be overridden in llvm.mk. Also, we don't have such a 
definition for the target, which makes me think that by default it just uses 
CMAKE_C_COMPILER (which is exactly what we want here).

  Could you try to remove the definition from pkg-cmake.mk and see if that 
works? And then also remove it in llvm.mk. In separate patches, of course.

  Regards,
  Arnout
Heiko Thiery July 12, 2024, 7:23 p.m. UTC | #5
Hi Arnout,

Am Fr., 12. Juli 2024 um 21:08 Uhr schrieb Heiko Thiery
<heiko.thiery@gmail.com>:
>
> Hi Arnout,
>
> Am Fr., 12. Juli 2024 um 10:38 Uhr schrieb Arnout Vandecappelle
> <arnout@mind.be>:
> >
> >   Hi Heiko,
> >
> > On 04/07/2024 14:34, Heiko Thiery wrote:
> > > This package is used and required for ccache update.
> > >
> > > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> > > ---
> > >
> > > v2:
> > >      - on change
> > >
> > > v3:
> > >      - fix BLAKE3_LICENSE_FILES and corresponding hash values
> > >
> > >
> > >   DEVELOPERS                 |  1 +
> > >   package/blake3/blake3.hash |  3 +++
> > >   package/blake3/blake3.mk   | 20 ++++++++++++++++++++
> > >   3 files changed, 24 insertions(+)
> > >   create mode 100644 package/blake3/blake3.hash
> > >   create mode 100644 package/blake3/blake3.mk
> > >
> > > diff --git a/DEVELOPERS b/DEVELOPERS
> > > index 90d1a111ab..46fe3cd2e1 100644
> > > --- a/DEVELOPERS
> > > +++ b/DEVELOPERS
> > > @@ -1359,6 +1359,7 @@ F:      configs/kontron_bl_imx8mm_defconfig
> > >   F:  configs/kontron_smarc_sal28_defconfig
> > >   F:  configs/kontron_pitx_imx8m_defconfig
> > >   F:  package/altera-stapl/
> > > +F:   package/blake3/
> > >   F:  package/ipmitool/
> > >   F:  package/libnetconf2/
> > >   F:  package/libyang/
> > > diff --git a/package/blake3/blake3.hash b/package/blake3/blake3.hash
> > > new file mode 100644
> > > index 0000000000..2a00d19b02
> > > --- /dev/null
> > > +++ b/package/blake3/blake3.hash
> > > @@ -0,0 +1,3 @@
> > > +# sha256 computed locally
> > > +sha256  822cd37f70152e5985433d2c50c8f6b2ec83aaf11aa31be9fe71486a91744f37  blake3-1.5.1.tar.gz
> > > +sha256  6a94bedb8b707ed97f6e310d0d015ab14e0683ffa0a612b02958581b9cc9fc0e  LICENSE
> > > diff --git a/package/blake3/blake3.mk b/package/blake3/blake3.mk
> > > new file mode 100644
> > > index 0000000000..76e4e32e7a
> > > --- /dev/null
> > > +++ b/package/blake3/blake3.mk
> > > @@ -0,0 +1,20 @@
> > > +################################################################################
> > > +#
> > > +# blake3
> > > +#
> > > +################################################################################
> > > +
> > > +BLAKE3_VERSION = 1.5.1
> > > +BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,refs/tags/$(BLAKE3_VERSION))
> >
> >   Why do you put the refs/tags here? It was necessary in one or two packages
> > because of a conflict with a branch name, but I don't think that's the case
> > here. I admit that there's a certain elegance to making it explicit that we want
> > a tag, but then we really should be doing that everywhere...
>
> You are right. I changed it to:
> BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,$(BLAKE3_VERSION))
>
> I think this is what you expect.
>
> >
> > > +BLAKE3_SUBDIR = c
> > > +BLAKE3_LICENSE = Apache-2.0, CC0-1.0
> > > +BLAKE3_LICENSE_FILES = LICENSE
> > > +
> > > +# We may be a ccache dependency, so we can't use ccache; reset the
> > > +# options set by the cmake infra.
> > > +HOST_BLAKE3_CONF_OPTS += \
> > > +     -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
> >
> >   Why is this needed? And is it even a good idea? In pkg-cmake, this is defined
> > as -DCMAKE_ASM_COMPILER="$$(HOSTAS)", and HOSTAS is simply "as" without any
> > ccache. In fact, this changes it from "as" to "gcc" which I expect is not
> > correct at all...
>
> When not defining that I got the errror:
>
> [ 25%] Building C object CMakeFiles/blake3.dir/blake3_portable.c.o
> [ 37%] Building ASM object CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o
> [ 50%] Building C object CMakeFiles/blake3.dir/blake3_dispatch.c.o
> Assembler messages:
> Fatal error: bad defsym; format is --defsym name=value
> make[3]: *** [CMakeFiles/blake3.dir/build.make:117:
> CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o] Error 1
> make[3]: *** Waiting for unfinished jobs....
> [ 62%] Building ASM object CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o
> Assembler messages:
> Fatal error: bad defsym; format is --defsym name=value
> make[3]: *** [CMakeFiles/blake3.dir/build.make:130:
> CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o] Error 1
> make[3]: Leaving directory
> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> make[2]: *** [CMakeFiles/Makefile2:83: CMakeFiles/blake3.dir/all] Error 2
> make[2]: Leaving directory
> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> make[1]: *** [Makefile:136: all] Error 2
> make[1]: Leaving directory
> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> make: *** [package/pkg-generic.mk:283:
> /home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/.stamp_built]
> Error 2
>
> So when changing to use gcc instead of as it works.
>
> I tried to build on my host and see that cmake sets the var
> "CMAKE_ASM_COMPILER=/usr/bin/cc". When overwriting it with as it also
> does not build.

But unsetting -UCMAKE_C_COMPILER_LAUNCHER and
-UCMAKE_CXX_COMPILER_LAUNCHE is not required. So would remove these
two lines.

>
> --
> Heiko
>
> >
> >   Since you said you could respin this weekend, I will mark as Changes
> > Requested, but it's possible that your respin only has some commit message
> > changes of course.
> >
> >   Regards,
> >   Arnout
> >
> > > +     -UCMAKE_C_COMPILER_LAUNCHER \
> > > +     -UCMAKE_CXX_COMPILER_LAUNCHER
> > > +
> > > +$(eval $(host-cmake-package))
Arnout Vandecappelle July 12, 2024, 7:56 p.m. UTC | #6
On 12/07/2024 21:23, Heiko Thiery wrote:
> Hi Arnout,
> 
> Am Fr., 12. Juli 2024 um 21:08 Uhr schrieb Heiko Thiery
> <heiko.thiery@gmail.com>:
>>
>> Hi Arnout,
>>
>> Am Fr., 12. Juli 2024 um 10:38 Uhr schrieb Arnout Vandecappelle
>> <arnout@mind.be>:
>>>
>>>    Hi Heiko,
>>>
>>> On 04/07/2024 14:34, Heiko Thiery wrote:
>>>> This package is used and required for ccache update.
>>>>
>>>> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
>>>> ---
>>>>
>>>> v2:
>>>>       - on change
>>>>
>>>> v3:
>>>>       - fix BLAKE3_LICENSE_FILES and corresponding hash values
>>>>
>>>>
>>>>    DEVELOPERS                 |  1 +
>>>>    package/blake3/blake3.hash |  3 +++
>>>>    package/blake3/blake3.mk   | 20 ++++++++++++++++++++
>>>>    3 files changed, 24 insertions(+)
>>>>    create mode 100644 package/blake3/blake3.hash
>>>>    create mode 100644 package/blake3/blake3.mk
>>>>
>>>> diff --git a/DEVELOPERS b/DEVELOPERS
>>>> index 90d1a111ab..46fe3cd2e1 100644
>>>> --- a/DEVELOPERS
>>>> +++ b/DEVELOPERS
>>>> @@ -1359,6 +1359,7 @@ F:      configs/kontron_bl_imx8mm_defconfig
>>>>    F:  configs/kontron_smarc_sal28_defconfig
>>>>    F:  configs/kontron_pitx_imx8m_defconfig
>>>>    F:  package/altera-stapl/
>>>> +F:   package/blake3/
>>>>    F:  package/ipmitool/
>>>>    F:  package/libnetconf2/
>>>>    F:  package/libyang/
>>>> diff --git a/package/blake3/blake3.hash b/package/blake3/blake3.hash
>>>> new file mode 100644
>>>> index 0000000000..2a00d19b02
>>>> --- /dev/null
>>>> +++ b/package/blake3/blake3.hash
>>>> @@ -0,0 +1,3 @@
>>>> +# sha256 computed locally
>>>> +sha256  822cd37f70152e5985433d2c50c8f6b2ec83aaf11aa31be9fe71486a91744f37  blake3-1.5.1.tar.gz
>>>> +sha256  6a94bedb8b707ed97f6e310d0d015ab14e0683ffa0a612b02958581b9cc9fc0e  LICENSE
>>>> diff --git a/package/blake3/blake3.mk b/package/blake3/blake3.mk
>>>> new file mode 100644
>>>> index 0000000000..76e4e32e7a
>>>> --- /dev/null
>>>> +++ b/package/blake3/blake3.mk
>>>> @@ -0,0 +1,20 @@
>>>> +################################################################################
>>>> +#
>>>> +# blake3
>>>> +#
>>>> +################################################################################
>>>> +
>>>> +BLAKE3_VERSION = 1.5.1
>>>> +BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,refs/tags/$(BLAKE3_VERSION))
>>>
>>>    Why do you put the refs/tags here? It was necessary in one or two packages
>>> because of a conflict with a branch name, but I don't think that's the case
>>> here. I admit that there's a certain elegance to making it explicit that we want
>>> a tag, but then we really should be doing that everywhere...
>>
>> You are right. I changed it to:
>> BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,$(BLAKE3_VERSION))
>>
>> I think this is what you expect.
>>
>>>
>>>> +BLAKE3_SUBDIR = c
>>>> +BLAKE3_LICENSE = Apache-2.0, CC0-1.0
>>>> +BLAKE3_LICENSE_FILES = LICENSE
>>>> +
>>>> +# We may be a ccache dependency, so we can't use ccache; reset the
>>>> +# options set by the cmake infra.
>>>> +HOST_BLAKE3_CONF_OPTS += \
>>>> +     -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
>>>
>>>    Why is this needed? And is it even a good idea? In pkg-cmake, this is defined
>>> as -DCMAKE_ASM_COMPILER="$$(HOSTAS)", and HOSTAS is simply "as" without any
>>> ccache. In fact, this changes it from "as" to "gcc" which I expect is not
>>> correct at all...
>>
>> When not defining that I got the errror:
>>
>> [ 25%] Building C object CMakeFiles/blake3.dir/blake3_portable.c.o
>> [ 37%] Building ASM object CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o
>> [ 50%] Building C object CMakeFiles/blake3.dir/blake3_dispatch.c.o
>> Assembler messages:
>> Fatal error: bad defsym; format is --defsym name=value
>> make[3]: *** [CMakeFiles/blake3.dir/build.make:117:
>> CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o] Error 1
>> make[3]: *** Waiting for unfinished jobs....
>> [ 62%] Building ASM object CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o
>> Assembler messages:
>> Fatal error: bad defsym; format is --defsym name=value
>> make[3]: *** [CMakeFiles/blake3.dir/build.make:130:
>> CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o] Error 1
>> make[3]: Leaving directory
>> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
>> make[2]: *** [CMakeFiles/Makefile2:83: CMakeFiles/blake3.dir/all] Error 2
>> make[2]: Leaving directory
>> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
>> make[1]: *** [Makefile:136: all] Error 2
>> make[1]: Leaving directory
>> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
>> make: *** [package/pkg-generic.mk:283:
>> /home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/.stamp_built]
>> Error 2
>>
>> So when changing to use gcc instead of as it works.
>>
>> I tried to build on my host and see that cmake sets the var
>> "CMAKE_ASM_COMPILER=/usr/bin/cc". When overwriting it with as it also
>> does not build.
> 
> But unsetting -UCMAKE_C_COMPILER_LAUNCHER and
> -UCMAKE_CXX_COMPILER_LAUNCHE is not required. So would remove these
> two lines.

  Huh? Those two are still needed because blake3 is a dependency of ccache so 
you can't build it with ccache as the launcher...

  Regards,
  Arnout

> 
>>
>> --
>> Heiko
>>
>>>
>>>    Since you said you could respin this weekend, I will mark as Changes
>>> Requested, but it's possible that your respin only has some commit message
>>> changes of course.
>>>
>>>    Regards,
>>>    Arnout
>>>
>>>> +     -UCMAKE_C_COMPILER_LAUNCHER \
>>>> +     -UCMAKE_CXX_COMPILER_LAUNCHER
>>>> +
>>>> +$(eval $(host-cmake-package))
Heiko Thiery July 12, 2024, 8:48 p.m. UTC | #7
Am Fr., 12. Juli 2024 um 21:56 Uhr schrieb Arnout Vandecappelle
<arnout@mind.be>:
>
>
>
> On 12/07/2024 21:23, Heiko Thiery wrote:
> > Hi Arnout,
> >
> > Am Fr., 12. Juli 2024 um 21:08 Uhr schrieb Heiko Thiery
> > <heiko.thiery@gmail.com>:
> >>
> >> Hi Arnout,
> >>
> >> Am Fr., 12. Juli 2024 um 10:38 Uhr schrieb Arnout Vandecappelle
> >> <arnout@mind.be>:
> >>>
> >>>    Hi Heiko,
> >>>
> >>> On 04/07/2024 14:34, Heiko Thiery wrote:
> >>>> This package is used and required for ccache update.
> >>>>
> >>>> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> >>>> ---
> >>>>
> >>>> v2:
> >>>>       - on change
> >>>>
> >>>> v3:
> >>>>       - fix BLAKE3_LICENSE_FILES and corresponding hash values
> >>>>
> >>>>
> >>>>    DEVELOPERS                 |  1 +
> >>>>    package/blake3/blake3.hash |  3 +++
> >>>>    package/blake3/blake3.mk   | 20 ++++++++++++++++++++
> >>>>    3 files changed, 24 insertions(+)
> >>>>    create mode 100644 package/blake3/blake3.hash
> >>>>    create mode 100644 package/blake3/blake3.mk
> >>>>
> >>>> diff --git a/DEVELOPERS b/DEVELOPERS
> >>>> index 90d1a111ab..46fe3cd2e1 100644
> >>>> --- a/DEVELOPERS
> >>>> +++ b/DEVELOPERS
> >>>> @@ -1359,6 +1359,7 @@ F:      configs/kontron_bl_imx8mm_defconfig
> >>>>    F:  configs/kontron_smarc_sal28_defconfig
> >>>>    F:  configs/kontron_pitx_imx8m_defconfig
> >>>>    F:  package/altera-stapl/
> >>>> +F:   package/blake3/
> >>>>    F:  package/ipmitool/
> >>>>    F:  package/libnetconf2/
> >>>>    F:  package/libyang/
> >>>> diff --git a/package/blake3/blake3.hash b/package/blake3/blake3.hash
> >>>> new file mode 100644
> >>>> index 0000000000..2a00d19b02
> >>>> --- /dev/null
> >>>> +++ b/package/blake3/blake3.hash
> >>>> @@ -0,0 +1,3 @@
> >>>> +# sha256 computed locally
> >>>> +sha256  822cd37f70152e5985433d2c50c8f6b2ec83aaf11aa31be9fe71486a91744f37  blake3-1.5.1.tar.gz
> >>>> +sha256  6a94bedb8b707ed97f6e310d0d015ab14e0683ffa0a612b02958581b9cc9fc0e  LICENSE
> >>>> diff --git a/package/blake3/blake3.mk b/package/blake3/blake3.mk
> >>>> new file mode 100644
> >>>> index 0000000000..76e4e32e7a
> >>>> --- /dev/null
> >>>> +++ b/package/blake3/blake3.mk
> >>>> @@ -0,0 +1,20 @@
> >>>> +################################################################################
> >>>> +#
> >>>> +# blake3
> >>>> +#
> >>>> +################################################################################
> >>>> +
> >>>> +BLAKE3_VERSION = 1.5.1
> >>>> +BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,refs/tags/$(BLAKE3_VERSION))
> >>>
> >>>    Why do you put the refs/tags here? It was necessary in one or two packages
> >>> because of a conflict with a branch name, but I don't think that's the case
> >>> here. I admit that there's a certain elegance to making it explicit that we want
> >>> a tag, but then we really should be doing that everywhere...
> >>
> >> You are right. I changed it to:
> >> BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,$(BLAKE3_VERSION))
> >>
> >> I think this is what you expect.
> >>
> >>>
> >>>> +BLAKE3_SUBDIR = c
> >>>> +BLAKE3_LICENSE = Apache-2.0, CC0-1.0
> >>>> +BLAKE3_LICENSE_FILES = LICENSE
> >>>> +
> >>>> +# We may be a ccache dependency, so we can't use ccache; reset the
> >>>> +# options set by the cmake infra.
> >>>> +HOST_BLAKE3_CONF_OPTS += \
> >>>> +     -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
> >>>
> >>>    Why is this needed? And is it even a good idea? In pkg-cmake, this is defined
> >>> as -DCMAKE_ASM_COMPILER="$$(HOSTAS)", and HOSTAS is simply "as" without any
> >>> ccache. In fact, this changes it from "as" to "gcc" which I expect is not
> >>> correct at all...
> >>
> >> When not defining that I got the errror:
> >>
> >> [ 25%] Building C object CMakeFiles/blake3.dir/blake3_portable.c.o
> >> [ 37%] Building ASM object CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o
> >> [ 50%] Building C object CMakeFiles/blake3.dir/blake3_dispatch.c.o
> >> Assembler messages:
> >> Fatal error: bad defsym; format is --defsym name=value
> >> make[3]: *** [CMakeFiles/blake3.dir/build.make:117:
> >> CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o] Error 1
> >> make[3]: *** Waiting for unfinished jobs....
> >> [ 62%] Building ASM object CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o
> >> Assembler messages:
> >> Fatal error: bad defsym; format is --defsym name=value
> >> make[3]: *** [CMakeFiles/blake3.dir/build.make:130:
> >> CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o] Error 1
> >> make[3]: Leaving directory
> >> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> >> make[2]: *** [CMakeFiles/Makefile2:83: CMakeFiles/blake3.dir/all] Error 2
> >> make[2]: Leaving directory
> >> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> >> make[1]: *** [Makefile:136: all] Error 2
> >> make[1]: Leaving directory
> >> '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> >> make: *** [package/pkg-generic.mk:283:
> >> /home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/.stamp_built]
> >> Error 2
> >>
> >> So when changing to use gcc instead of as it works.
> >>
> >> I tried to build on my host and see that cmake sets the var
> >> "CMAKE_ASM_COMPILER=/usr/bin/cc". When overwriting it with as it also
> >> does not build.
> >
> > But unsetting -UCMAKE_C_COMPILER_LAUNCHER and
> > -UCMAKE_CXX_COMPILER_LAUNCHE is not required. So would remove these
> > two lines.
>
>   Huh? Those two are still needed because blake3 is a dependency of ccache so
> you can't build it with ccache as the launcher...

Ah yes .. I just build host-blake3 without ccache enabled for testing
my changes. So I will retest that ;-/

Thanks

>
>   Regards,
>   Arnout
>
> >
> >>
> >> --
> >> Heiko
> >>
> >>>
> >>>    Since you said you could respin this weekend, I will mark as Changes
> >>> Requested, but it's possible that your respin only has some commit message
> >>> changes of course.
> >>>
> >>>    Regards,
> >>>    Arnout
> >>>
> >>>> +     -UCMAKE_C_COMPILER_LAUNCHER \
> >>>> +     -UCMAKE_CXX_COMPILER_LAUNCHER
> >>>> +
> >>>> +$(eval $(host-cmake-package))
Heiko Thiery July 13, 2024, 5:31 a.m. UTC | #8
Hi,

Am Fr., 12. Juli 2024 um 21:21 Uhr schrieb Arnout Vandecappelle
<arnout@mind.be>:
>
>
>
> On 12/07/2024 21:08, Heiko Thiery wrote:
> > Hi Arnout,
> >
> > Am Fr., 12. Juli 2024 um 10:38 Uhr schrieb Arnout Vandecappelle
> > <arnout@mind.be>:
> >>
> >>    Hi Heiko,
> >>
> >> On 04/07/2024 14:34, Heiko Thiery wrote:
> [snip]
>
> >>> +HOST_BLAKE3_CONF_OPTS += \
> >>> +     -DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
> >>
> >>    Why is this needed? And is it even a good idea? In pkg-cmake, this is defined
> >> as -DCMAKE_ASM_COMPILER="$$(HOSTAS)", and HOSTAS is simply "as" without any
> >> ccache. In fact, this changes it from "as" to "gcc" which I expect is not
> >> correct at all...
> >
> > When not defining that I got the errror:
> >
> > [ 25%] Building C object CMakeFiles/blake3.dir/blake3_portable.c.o
> > [ 37%] Building ASM object CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o
> > [ 50%] Building C object CMakeFiles/blake3.dir/blake3_dispatch.c.o
> > Assembler messages:
> > Fatal error: bad defsym; format is --defsym name=value
> > make[3]: *** [CMakeFiles/blake3.dir/build.make:117:
> > CMakeFiles/blake3.dir/blake3_avx2_x86-64_unix.S.o] Error 1
> > make[3]: *** Waiting for unfinished jobs....
> > [ 62%] Building ASM object CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o
> > Assembler messages:
> > Fatal error: bad defsym; format is --defsym name=value
> > make[3]: *** [CMakeFiles/blake3.dir/build.make:130:
> > CMakeFiles/blake3.dir/blake3_avx512_x86-64_unix.S.o] Error 1
> > make[3]: Leaving directory
> > '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> > make[2]: *** [CMakeFiles/Makefile2:83: CMakeFiles/blake3.dir/all] Error 2
> > make[2]: Leaving directory
> > '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> > make[1]: *** [Makefile:136: all] Error 2
> > make[1]: Leaving directory
> > '/home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/c'
> > make: *** [package/pkg-generic.mk:283:
> > /home/hthiery/sources/mainline/buildroot/output/build/host-blake3-1.5.1/.stamp_built]
> > Error 2
> >
> > So when changing to use gcc instead of as it works.
> >
> > I tried to build on my host and see that cmake sets the var
> > "CMAKE_ASM_COMPILER=/usr/bin/cc". When overwriting it with as it also
> > does not build.
>
>   Hah, indeed, our setting of CMAKE_ASM_COMPILER is incorrect in pkg-cmake.mk.
> That's why it also had to be overridden in llvm.mk. Also, we don't have such a
> definition for the target, which makes me think that by default it just uses
> CMAKE_C_COMPILER (which is exactly what we want here).
>
>   Could you try to remove the definition from pkg-cmake.mk and see if that
> works? And then also remove it in llvm.mk. In separate patches, of course.

Indeed, when removing the CMAKE_ASM_COMPILER from pkg-cmake.pkg the blake3
and llvm package build without the need of setting ASM to gcc.

I will create a patch for that (pkg-cmake and llvm). But only i can't
explain exactly why the setting
in pkg-cmake is wrong. it would be good if you could improve the
commit message accordingly.
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 90d1a111ab..46fe3cd2e1 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1359,6 +1359,7 @@  F:	configs/kontron_bl_imx8mm_defconfig
 F:	configs/kontron_smarc_sal28_defconfig
 F:	configs/kontron_pitx_imx8m_defconfig
 F:	package/altera-stapl/
+F:	package/blake3/
 F:	package/ipmitool/
 F:	package/libnetconf2/
 F:	package/libyang/
diff --git a/package/blake3/blake3.hash b/package/blake3/blake3.hash
new file mode 100644
index 0000000000..2a00d19b02
--- /dev/null
+++ b/package/blake3/blake3.hash
@@ -0,0 +1,3 @@ 
+# sha256 computed locally
+sha256  822cd37f70152e5985433d2c50c8f6b2ec83aaf11aa31be9fe71486a91744f37  blake3-1.5.1.tar.gz
+sha256  6a94bedb8b707ed97f6e310d0d015ab14e0683ffa0a612b02958581b9cc9fc0e  LICENSE
diff --git a/package/blake3/blake3.mk b/package/blake3/blake3.mk
new file mode 100644
index 0000000000..76e4e32e7a
--- /dev/null
+++ b/package/blake3/blake3.mk
@@ -0,0 +1,20 @@ 
+################################################################################
+#
+# blake3
+#
+################################################################################
+
+BLAKE3_VERSION = 1.5.1
+BLAKE3_SITE = $(call github,BLAKE3-team,BLAKE3,refs/tags/$(BLAKE3_VERSION))
+BLAKE3_SUBDIR = c
+BLAKE3_LICENSE = Apache-2.0, CC0-1.0
+BLAKE3_LICENSE_FILES = LICENSE
+
+# We may be a ccache dependency, so we can't use ccache; reset the
+# options set by the cmake infra.
+HOST_BLAKE3_CONF_OPTS += \
+	-DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
+	-UCMAKE_C_COMPILER_LAUNCHER \
+	-UCMAKE_CXX_COMPILER_LAUNCHER
+
+$(eval $(host-cmake-package))