Message ID | 20201221184114.1300-1-marius@gnu.org |
---|---|
State | New |
Headers | show |
Series | [v2] sbc_primitives: Fix build on non-x86. | expand |
Hi Marius, On Mon, Dec 21, 2020 at 10:45 AM <marius@gnu.org> wrote: > > From: Marius Bakke <marius@devup.no> > > Don't call __builtin_cpu_init unless targeting i386 or x86_64. > Otherwise we get an error at link time: > > CC sbc/sbc_primitives.lo > sbc/sbc_primitives.c: In function ‘sbc_init_primitives_x86’: > sbc/sbc_primitives.c:596:2: warning: implicit declaration of function ‘__builtin_cpu_init’; did you mean ‘__builtin_irint’? [-Wimplicit-function-declaration] > [...] > CCLD src/sbcdec > ld: sbc/.libs/libsbc-private.a(sbc_primitives.o): in function `sbc_init_primitives': > sbc_primitives.c:(.text+0x3a30): undefined reference to `__builtin_cpu_init' > --- > sbc/sbc_primitives.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/sbc/sbc_primitives.c b/sbc/sbc_primitives.c > index 97a75be..d8e166a 100644 > --- a/sbc/sbc_primitives.c > +++ b/sbc/sbc_primitives.c > @@ -593,7 +593,9 @@ static int sbc_calc_scalefactors_j( > > static void sbc_init_primitives_x86(struct sbc_encoder_state *state) > { > +#if defined(__x86_64__) || defined(__i386__) > __builtin_cpu_init(); I would probably have the entire function under the #if here. > +#endif > > #ifdef SBC_BUILD_WITH_MMX_SUPPORT > if (__builtin_cpu_supports("mmx")) > -- > 2.29.2 > -- Luiz Augusto von Dentz
Luiz Augusto von Dentz <luiz.dentz@gmail.com> skriver: > Hi Marius, > > On Mon, Dec 21, 2020 at 10:45 AM <marius@gnu.org> wrote: >> >> From: Marius Bakke <marius@devup.no> >> >> Don't call __builtin_cpu_init unless targeting i386 or x86_64. >> Otherwise we get an error at link time: >> >> CC sbc/sbc_primitives.lo >> sbc/sbc_primitives.c: In function ‘sbc_init_primitives_x86’: >> sbc/sbc_primitives.c:596:2: warning: implicit declaration of function ‘__builtin_cpu_init’; did you mean ‘__builtin_irint’? [-Wimplicit-function-declaration] >> [...] >> CCLD src/sbcdec >> ld: sbc/.libs/libsbc-private.a(sbc_primitives.o): in function `sbc_init_primitives': >> sbc_primitives.c:(.text+0x3a30): undefined reference to `__builtin_cpu_init' >> --- >> sbc/sbc_primitives.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/sbc/sbc_primitives.c b/sbc/sbc_primitives.c >> index 97a75be..d8e166a 100644 >> --- a/sbc/sbc_primitives.c >> +++ b/sbc/sbc_primitives.c >> @@ -593,7 +593,9 @@ static int sbc_calc_scalefactors_j( >> >> static void sbc_init_primitives_x86(struct sbc_encoder_state *state) >> { >> +#if defined(__x86_64__) || defined(__i386__) >> __builtin_cpu_init(); > > I would probably have the entire function under the #if here. That makes sense; v3 sent! Thanks, Marius
Hi Marius, On Tue, Dec 22, 2020 at 3:07 AM Marius Bakke <marius@devup.no> wrote: > > From: Marius Bakke <marius@gnu.org> > > Don't call __builtin_cpu_init unless targeting i386 or x86_64. > Otherwise we get an error at link time: > > CC sbc/sbc_primitives.lo > sbc/sbc_primitives.c: In function ‘sbc_init_primitives_x86’: > sbc/sbc_primitives.c:596:2: warning: implicit declaration of function ‘__builtin_cpu_init’; did you mean ‘__builtin_irint’? [-Wimplicit-function-declaration] > [...] > CCLD src/sbcdec > ld: sbc/.libs/libsbc-private.a(sbc_primitives.o): in function `sbc_init_primitives': > sbc_primitives.c:(.text+0x3a30): undefined reference to `__builtin_cpu_init' > --- > sbc/sbc_primitives.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/sbc/sbc_primitives.c b/sbc/sbc_primitives.c > index 97a75be..09c214a 100644 > --- a/sbc/sbc_primitives.c > +++ b/sbc/sbc_primitives.c > @@ -593,6 +593,7 @@ static int sbc_calc_scalefactors_j( > > static void sbc_init_primitives_x86(struct sbc_encoder_state *state) > { > +#if defined(__x86_64__) || defined(__i386__) > __builtin_cpu_init(); > > #ifdef SBC_BUILD_WITH_MMX_SUPPORT > @@ -604,6 +605,7 @@ static void sbc_init_primitives_x86(struct sbc_encoder_state *state) > if (__builtin_cpu_supports("sse4.2")) > sbc_init_primitives_sse(state); > #endif > +#endif > } > > /* > -- > 2.29.2 Applied, thanks. -- Luiz Augusto von Dentz
diff --git a/sbc/sbc_primitives.c b/sbc/sbc_primitives.c index 97a75be..d8e166a 100644 --- a/sbc/sbc_primitives.c +++ b/sbc/sbc_primitives.c @@ -593,7 +593,9 @@ static int sbc_calc_scalefactors_j( static void sbc_init_primitives_x86(struct sbc_encoder_state *state) { +#if defined(__x86_64__) || defined(__i386__) __builtin_cpu_init(); +#endif #ifdef SBC_BUILD_WITH_MMX_SUPPORT if (__builtin_cpu_supports("mmx"))
From: Marius Bakke <marius@devup.no> Don't call __builtin_cpu_init unless targeting i386 or x86_64. Otherwise we get an error at link time: CC sbc/sbc_primitives.lo sbc/sbc_primitives.c: In function ‘sbc_init_primitives_x86’: sbc/sbc_primitives.c:596:2: warning: implicit declaration of function ‘__builtin_cpu_init’; did you mean ‘__builtin_irint’? [-Wimplicit-function-declaration] [...] CCLD src/sbcdec ld: sbc/.libs/libsbc-private.a(sbc_primitives.o): in function `sbc_init_primitives': sbc_primitives.c:(.text+0x3a30): undefined reference to `__builtin_cpu_init' --- sbc/sbc_primitives.c | 2 ++ 1 file changed, 2 insertions(+)