All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/pifmrds: always link with -lm
@ 2021-05-25  5:44 Fabrice Fontaine
  2021-05-25 19:59 ` Arnout Vandecappelle
  0 siblings, 1 reply; 4+ messages in thread
From: Fabrice Fontaine @ 2021-05-25  5:44 UTC (permalink / raw)
  To: buildroot

Commit 888546e5273d77d49bec564a515e85d7acee6bdd wrongly removed linking
with -lm resulting in the following build failure:

/home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-linux-gnueabihf-gcc  -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -L/home/buildroot/autobuild/run/instance-3/output-1/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lsndfile
/home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/7.3.1/../../../../arm-linux-gnueabihf/bin/ld: fm_mpx.o: undefined reference to symbol 'cos@@GLIBC_2.4'
/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/lib/libm.so.6: error adding symbols: DSO missing from command line

Fixes:
 - http://autobuild.buildroot.org/results/b2a6e6fd77bf9071ce9f75fed1811be9ffe5366d

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 package/pifmrds/0003-Makefile-fix-static-link.patch | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/package/pifmrds/0003-Makefile-fix-static-link.patch b/package/pifmrds/0003-Makefile-fix-static-link.patch
index 3bd91c981f..3832b77d59 100644
--- a/package/pifmrds/0003-Makefile-fix-static-link.patch
+++ b/package/pifmrds/0003-Makefile-fix-static-link.patch
@@ -15,11 +15,11 @@ diff -purN pifmrds-0bf57f9ce0d954365a38d8af8e7be6f28521c3f2.orig/src/Makefile pi
  
  app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o
 -	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
-+	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(SNDFILE_LIBS)
++	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(SNDFILE_LIBS) -lm
  
  rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o
 -	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
-+	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o $(SNDFILE_LIBS)
++	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o $(SNDFILE_LIBS) -lm
  
  rds.o: rds.c waveforms.h
  	$(CC) $(CFLAGS) rds.c
-- 
2.30.2

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] package/pifmrds: always link with -lm
  2021-05-25  5:44 [Buildroot] [PATCH 1/1] package/pifmrds: always link with -lm Fabrice Fontaine
@ 2021-05-25 19:59 ` Arnout Vandecappelle
  2021-05-25 20:10   ` Yann E. MORIN
  0 siblings, 1 reply; 4+ messages in thread
From: Arnout Vandecappelle @ 2021-05-25 19:59 UTC (permalink / raw)
  To: buildroot



On 25/05/2021 07:44, Fabrice Fontaine wrote:
> Commit 888546e5273d77d49bec564a515e85d7acee6bdd wrongly removed linking
> with -lm resulting in the following build failure:
> 
> /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-linux-gnueabihf-gcc  -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -L/home/buildroot/autobuild/run/instance-3/output-1/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lsndfile
> /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/7.3.1/../../../../arm-linux-gnueabihf/bin/ld: fm_mpx.o: undefined reference to symbol 'cos@@GLIBC_2.4'
> /home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/lib/libm.so.6: error adding symbols: DSO missing from command line

 Although the only undefined reference here was for a symbol referenced from
pifmrds itself, the original patch was actually for libsndfile (it uses pow and
frexp, possibly others as well). So I would actually expect libsndfile to add it
to its libs in the pc file.

 That said, since pifmrds uses math functions directly, this fix is still
correct, so applied to master, thanks.

 Regards,
 Arnout

> 
> Fixes:
>  - http://autobuild.buildroot.org/results/b2a6e6fd77bf9071ce9f75fed1811be9ffe5366d
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
>  package/pifmrds/0003-Makefile-fix-static-link.patch | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/package/pifmrds/0003-Makefile-fix-static-link.patch b/package/pifmrds/0003-Makefile-fix-static-link.patch
> index 3bd91c981f..3832b77d59 100644
> --- a/package/pifmrds/0003-Makefile-fix-static-link.patch
> +++ b/package/pifmrds/0003-Makefile-fix-static-link.patch
> @@ -15,11 +15,11 @@ diff -purN pifmrds-0bf57f9ce0d954365a38d8af8e7be6f28521c3f2.orig/src/Makefile pi
>   
>   app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o
>  -	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
> -+	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(SNDFILE_LIBS)
> ++	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(SNDFILE_LIBS) -lm
>   
>   rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o
>  -	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
> -+	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o $(SNDFILE_LIBS)
> ++	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o $(SNDFILE_LIBS) -lm
>   
>   rds.o: rds.c waveforms.h
>   	$(CC) $(CFLAGS) rds.c
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] package/pifmrds: always link with -lm
  2021-05-25 19:59 ` Arnout Vandecappelle
@ 2021-05-25 20:10   ` Yann E. MORIN
  2021-05-26  7:09     ` Arnout Vandecappelle
  0 siblings, 1 reply; 4+ messages in thread
From: Yann E. MORIN @ 2021-05-25 20:10 UTC (permalink / raw)
  To: buildroot

Arnout, All,

On 2021-05-25 21:59 +0200, Arnout Vandecappelle spake thusly:
> On 25/05/2021 07:44, Fabrice Fontaine wrote:
> > Commit 888546e5273d77d49bec564a515e85d7acee6bdd wrongly removed linking
> > with -lm resulting in the following build failure:
> > 
> > /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-linux-gnueabihf-gcc  -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -L/home/buildroot/autobuild/run/instance-3/output-1/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lsndfile
> > /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/7.3.1/../../../../arm-linux-gnueabihf/bin/ld: fm_mpx.o: undefined reference to symbol 'cos@@GLIBC_2.4'
> > /home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/lib/libm.so.6: error adding symbols: DSO missing from command line
> 
>  Although the only undefined reference here was for a symbol referenced from
> pifmrds itself, the original patch was actually for libsndfile (it uses pow and
> frexp, possibly others as well). So I would actually expect libsndfile to add it
> to its libs in the pc file.

That's what I assumed...

>  That said, since pifmrds uses math functions directly, this fix is still
> correct, so applied to master, thanks.

But then, we should change the commit log of that patch, to state that
-lm is need for pifmrds itself, otherwise this is going to stay
confusing when we update to a libsndfile that properly add -lm to its
.pc file, no?

Regards,
Yann E. MORIN.

>  Regards,
>  Arnout
> 
> > 
> > Fixes:
> >  - http://autobuild.buildroot.org/results/b2a6e6fd77bf9071ce9f75fed1811be9ffe5366d
> > 
> > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> > ---
> >  package/pifmrds/0003-Makefile-fix-static-link.patch | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/package/pifmrds/0003-Makefile-fix-static-link.patch b/package/pifmrds/0003-Makefile-fix-static-link.patch
> > index 3bd91c981f..3832b77d59 100644
> > --- a/package/pifmrds/0003-Makefile-fix-static-link.patch
> > +++ b/package/pifmrds/0003-Makefile-fix-static-link.patch
> > @@ -15,11 +15,11 @@ diff -purN pifmrds-0bf57f9ce0d954365a38d8af8e7be6f28521c3f2.orig/src/Makefile pi
> >   
> >   app: rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o
> >  -	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
> > -+	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(SNDFILE_LIBS)
> > ++	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(SNDFILE_LIBS) -lm
> >   
> >   rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o
> >  -	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
> > -+	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o $(SNDFILE_LIBS)
> > ++	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o $(SNDFILE_LIBS) -lm
> >   
> >   rds.o: rds.c waveforms.h
> >   	$(CC) $(CFLAGS) rds.c
> > 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] package/pifmrds: always link with -lm
  2021-05-25 20:10   ` Yann E. MORIN
@ 2021-05-26  7:09     ` Arnout Vandecappelle
  0 siblings, 0 replies; 4+ messages in thread
From: Arnout Vandecappelle @ 2021-05-26  7:09 UTC (permalink / raw)
  To: buildroot



On 25/05/2021 22:10, Yann E. MORIN wrote:
> Arnout, All,
> 
> On 2021-05-25 21:59 +0200, Arnout Vandecappelle spake thusly:
>> On 25/05/2021 07:44, Fabrice Fontaine wrote:
>>> Commit 888546e5273d77d49bec564a515e85d7acee6bdd wrongly removed linking
>>> with -lm resulting in the following build failure:
>>>
>>> /home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-linux-gnueabihf-gcc  -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -L/home/buildroot/autobuild/run/instance-3/output-1/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib -lsndfile
>>> /home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-linux-gnueabihf/7.3.1/../../../../arm-linux-gnueabihf/bin/ld: fm_mpx.o: undefined reference to symbol 'cos@@GLIBC_2.4'
>>> /home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-gnueabihf/sysroot/lib/libm.so.6: error adding symbols: DSO missing from command line
>>
>>  Although the only undefined reference here was for a symbol referenced from
>> pifmrds itself, the original patch was actually for libsndfile (it uses pow and
>> frexp, possibly others as well). So I would actually expect libsndfile to add it
>> to its libs in the pc file.
> 
> That's what I assumed...
> 
>>  That said, since pifmrds uses math functions directly, this fix is still
>> correct, so applied to master, thanks.
> 
> But then, we should change the commit log of that patch, to state that
> -lm is need for pifmrds itself, otherwise this is going to stay
> confusing when we update to a libsndfile that properly add -lm to its
> .pc file, no?

 No, the patch is there because the original code does "-lm -lsndfile". Since
sndfile *also* uses symbols from libm.a, and they will be in different sections
if libc is built with -ffunction-sections, the linker will fail to pick up the
functions required by libsndfile.

[snip]
>>>  -	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o -lm -lsndfile
>>> -+	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(SNDFILE_LIBS)
>>> ++	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o control_pipe.o $(SNDFILE_LIBS) -lm

 If the pc file from libsndfile would be correct, we could indeed change the
patch to

++	$(CC) $(LDFLAGS) -o pi_fm_rds rds.o waveforms.o pi_fm_rds.o fm_mpx.o
control_pipe.o -lm $(SNDFILE_LIBS)

and *then* we could update the commit message.

 Regards,
 Arnout



>>>   
>>>   rds_wav: rds.o waveforms.o rds_wav.o fm_mpx.o
>>>  -	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o -lm -lsndfile
>>> -+	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o $(SNDFILE_LIBS)
>>> ++	$(CC) $(LDFLAGS) -o rds_wav rds_wav.o rds.o waveforms.o fm_mpx.o $(SNDFILE_LIBS) -lm
>>>   
>>>   rds.o: rds.c waveforms.h
>>>   	$(CC) $(CFLAGS) rds.c
>>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-05-26  7:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-25  5:44 [Buildroot] [PATCH 1/1] package/pifmrds: always link with -lm Fabrice Fontaine
2021-05-25 19:59 ` Arnout Vandecappelle
2021-05-25 20:10   ` Yann E. MORIN
2021-05-26  7:09     ` Arnout Vandecappelle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.