* Re: [PATCH] newlib: stop clobbering LDFLAGS with non-standard $ldflags
2022-01-21 4:51 [PATCH] newlib: stop clobbering LDFLAGS with non-standard $ldflags Mike Frysinger
@ 2022-01-21 11:25 ` Corinna Vinschen
2023-04-14 21:51 ` Thomas Schwinge
1 sibling, 0 replies; 4+ messages in thread
From: Corinna Vinschen @ 2022-01-21 11:25 UTC (permalink / raw)
To: newlib
On Jan 20 23:51, Mike Frysinger wrote:
> It's unclear why this was added originally, but assuming it was needed
> 20 years ago, it shouldn't be explicitly required nowadays. Current
> versions of autotools already take care of exporting LDFLAGS to the
> Makefile as needed (things are actually getting linked). That's why
> the configure diffs show LDFLAGS still here, but shifted to a diff
> place in the output list. A few dirs stop exporting LDFLAGS, but
> that's because they don't do any linking, only compiling, so it's
> correct.
>
> As for the use of $ldflags instead of the standard $LDFLAGS, I can't
> really explain that at all. Just use the right name so users don't
> have to dig into why their setting isn't respected, and then use a
> non-standard name instead. Adjust the testsuite to match.
LGTM, thanks,
Corinna
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] newlib: stop clobbering LDFLAGS with non-standard $ldflags
2022-01-21 4:51 [PATCH] newlib: stop clobbering LDFLAGS with non-standard $ldflags Mike Frysinger
2022-01-21 11:25 ` Corinna Vinschen
@ 2023-04-14 21:51 ` Thomas Schwinge
2023-10-16 4:55 ` Mike Frysinger
1 sibling, 1 reply; 4+ messages in thread
From: Thomas Schwinge @ 2023-04-14 21:51 UTC (permalink / raw)
To: Mike Frysinger; +Cc: newlib
Hi!
On 2022-01-20T23:51:52-0500, Mike Frysinger <vapier@gentoo.org> wrote:
> It's unclear why this was added originally, but assuming it was needed
> 20 years ago, it shouldn't be explicitly required nowadays. Current
> versions of autotools already take care of exporting LDFLAGS to the
> Makefile as needed (things are actually getting linked). That's why
> the configure diffs show LDFLAGS still here, but shifted to a diff
> place in the output list. A few dirs stop exporting LDFLAGS, but
> that's because they don't do any linking, only compiling, so it's
> correct.
>
> As for the use of $ldflags instead of the standard $LDFLAGS, I can't
> really explain that at all. Just use the right name so users don't
> have to dig into why their setting isn't respected, and then use a
> non-standard name instead.
I can't comment on all that off-hand, but this change here:
> Adjust the testsuite to match.
> --- a/newlib/testsuite/lib/newlib.exp
> +++ b/newlib/testsuite/lib/newlib.exp
> @@ -66,13 +66,13 @@ proc newlib_target_compile { source dest type options } {
> [target_info needs_status_wrapper] != "0" && \
> [info exists gluefile] } {
> lappend options "libs=$gluefile"
> - lappend options "ldflags=$wrap_flags"
> + lappend options "LDFLAGS=$wrap_flags"
> }
>
> if [string match $host_triplet $target_triplet] then {
> if [string match "i686-pc-linux-gnu" $host_triplet] then {
> lappend options "libs=$objdir/crt0.o -lc -lgcc"
> - lappend options "ldflags=-nostdlib -L$objdir/.libs [newlib_include_flags]"
> + lappend options "LDFLAGS=-nostdlib -L$objdir/.libs [newlib_include_flags]"
> }
> }
..., is that really correct? As far as I know, DejaGnu only looks for
the lower-case 'ldflags' in 'options', as documented in
'[...]/share/dejagnu/target.exp'. (I just noticed this while looking for
something else; I don't have any toolchains exercising the code paths
you've changed.)
Grüße
Thomas
> newlib/acinclude.m4 | 3 ---
> newlib/configure | 9 +++------
> newlib/iconvdata/configure | 9 +++------
> newlib/libc/configure | 9 +++------
> newlib/libc/machine/a29k/Makefile.in | 1 -
> newlib/libc/machine/a29k/configure | 4 ----
> newlib/libc/machine/aarch64/Makefile.in | 1 -
> newlib/libc/machine/aarch64/configure | 4 ----
> newlib/libc/machine/amdgcn/Makefile.in | 1 -
> newlib/libc/machine/amdgcn/configure | 4 ----
> newlib/libc/machine/arc/Makefile.in | 1 -
> newlib/libc/machine/arc/configure | 4 ----
> newlib/libc/machine/arm/Makefile.in | 1 -
> newlib/libc/machine/arm/configure | 4 ----
> newlib/libc/machine/bfin/Makefile.in | 1 -
> newlib/libc/machine/bfin/configure | 4 ----
> newlib/libc/machine/configure | 9 +++------
> newlib/libc/machine/cr16/Makefile.in | 1 -
> newlib/libc/machine/cr16/configure | 4 ----
> newlib/libc/machine/cris/Makefile.in | 1 -
> newlib/libc/machine/cris/configure | 4 ----
> newlib/libc/machine/crx/Makefile.in | 1 -
> newlib/libc/machine/crx/configure | 4 ----
> newlib/libc/machine/csky/Makefile.in | 1 -
> newlib/libc/machine/csky/configure | 4 ----
> newlib/libc/machine/d10v/Makefile.in | 1 -
> newlib/libc/machine/d10v/configure | 4 ----
> newlib/libc/machine/d30v/Makefile.in | 1 -
> newlib/libc/machine/d30v/configure | 4 ----
> newlib/libc/machine/epiphany/Makefile.in | 1 -
> newlib/libc/machine/epiphany/configure | 4 ----
> newlib/libc/machine/fr30/Makefile.in | 1 -
> newlib/libc/machine/fr30/configure | 4 ----
> newlib/libc/machine/frv/Makefile.in | 1 -
> newlib/libc/machine/frv/configure | 4 ----
> newlib/libc/machine/ft32/Makefile.in | 1 -
> newlib/libc/machine/ft32/configure | 4 ----
> newlib/libc/machine/h8300/Makefile.in | 1 -
> newlib/libc/machine/h8300/configure | 4 ----
> newlib/libc/machine/h8500/Makefile.in | 1 -
> newlib/libc/machine/h8500/configure | 4 ----
> newlib/libc/machine/hppa/Makefile.in | 1 -
> newlib/libc/machine/hppa/configure | 4 ----
> newlib/libc/machine/i386/configure | 9 +++------
> newlib/libc/machine/i960/Makefile.in | 1 -
> newlib/libc/machine/i960/configure | 4 ----
> newlib/libc/machine/iq2000/Makefile.in | 1 -
> newlib/libc/machine/iq2000/configure | 4 ----
> newlib/libc/machine/lm32/Makefile.in | 1 -
> newlib/libc/machine/lm32/configure | 4 ----
> newlib/libc/machine/m32c/Makefile.in | 1 -
> newlib/libc/machine/m32c/configure | 4 ----
> newlib/libc/machine/m32r/Makefile.in | 1 -
> newlib/libc/machine/m32r/configure | 4 ----
> newlib/libc/machine/m68hc11/Makefile.in | 1 -
> newlib/libc/machine/m68hc11/configure | 4 ----
> newlib/libc/machine/m68k/Makefile.in | 1 -
> newlib/libc/machine/m68k/configure | 4 ----
> newlib/libc/machine/m88k/Makefile.in | 1 -
> newlib/libc/machine/m88k/configure | 4 ----
> newlib/libc/machine/mep/Makefile.in | 1 -
> newlib/libc/machine/mep/configure | 4 ----
> newlib/libc/machine/microblaze/Makefile.in | 1 -
> newlib/libc/machine/microblaze/configure | 4 ----
> newlib/libc/machine/mips/Makefile.in | 1 -
> newlib/libc/machine/mips/configure | 4 ----
> newlib/libc/machine/mn10200/Makefile.in | 1 -
> newlib/libc/machine/mn10200/configure | 4 ----
> newlib/libc/machine/mn10300/Makefile.in | 1 -
> newlib/libc/machine/mn10300/configure | 4 ----
> newlib/libc/machine/moxie/Makefile.in | 1 -
> newlib/libc/machine/moxie/configure | 4 ----
> newlib/libc/machine/msp430/Makefile.in | 1 -
> newlib/libc/machine/msp430/configure | 4 ----
> newlib/libc/machine/mt/Makefile.in | 1 -
> newlib/libc/machine/mt/configure | 4 ----
> newlib/libc/machine/nds32/configure | 5 +----
> newlib/libc/machine/necv70/Makefile.in | 1 -
> newlib/libc/machine/necv70/configure | 4 ----
> newlib/libc/machine/nios2/Makefile.in | 1 -
> newlib/libc/machine/nios2/configure | 4 ----
> newlib/libc/machine/nvptx/Makefile.in | 1 -
> newlib/libc/machine/nvptx/configure | 4 ----
> newlib/libc/machine/or1k/Makefile.in | 1 -
> newlib/libc/machine/or1k/configure | 4 ----
> newlib/libc/machine/powerpc/Makefile.in | 1 -
> newlib/libc/machine/powerpc/configure | 4 ----
> newlib/libc/machine/pru/Makefile.in | 1 -
> newlib/libc/machine/pru/configure | 4 ----
> newlib/libc/machine/riscv/Makefile.in | 1 -
> newlib/libc/machine/riscv/configure | 4 ----
> newlib/libc/machine/rl78/Makefile.in | 1 -
> newlib/libc/machine/rl78/configure | 4 ----
> newlib/libc/machine/rx/Makefile.in | 1 -
> newlib/libc/machine/rx/configure | 4 ----
> newlib/libc/machine/sh/configure | 5 +----
> newlib/libc/machine/sparc/Makefile.in | 1 -
> newlib/libc/machine/sparc/configure | 4 ----
> newlib/libc/machine/spu/Makefile.in | 1 -
> newlib/libc/machine/spu/configure | 4 ----
> newlib/libc/machine/tic4x/Makefile.in | 1 -
> newlib/libc/machine/tic4x/configure | 4 ----
> newlib/libc/machine/tic6x/Makefile.in | 1 -
> newlib/libc/machine/tic6x/configure | 4 ----
> newlib/libc/machine/tic80/Makefile.in | 1 -
> newlib/libc/machine/tic80/configure | 4 ----
> newlib/libc/machine/v850/Makefile.in | 1 -
> newlib/libc/machine/v850/configure | 4 ----
> newlib/libc/machine/visium/Makefile.in | 1 -
> newlib/libc/machine/visium/configure | 4 ----
> newlib/libc/machine/w65/Makefile.in | 1 -
> newlib/libc/machine/w65/configure | 4 ----
> newlib/libc/machine/x86_64/Makefile.in | 1 -
> newlib/libc/machine/x86_64/configure | 4 ----
> newlib/libc/machine/xc16x/Makefile.in | 1 -
> newlib/libc/machine/xc16x/configure | 4 ----
> newlib/libc/machine/xscale/Makefile.in | 1 -
> newlib/libc/machine/xscale/configure | 4 ----
> newlib/libc/machine/xstormy16/Makefile.in | 1 -
> newlib/libc/machine/xstormy16/configure | 4 ----
> newlib/libc/machine/z8k/Makefile.in | 1 -
> newlib/libc/machine/z8k/configure | 4 ----
> newlib/libc/sys/a29khif/Makefile.in | 1 -
> newlib/libc/sys/a29khif/configure | 4 ----
> newlib/libc/sys/amdgcn/Makefile.in | 1 -
> newlib/libc/sys/amdgcn/configure | 4 ----
> newlib/libc/sys/arm/Makefile.in | 1 -
> newlib/libc/sys/arm/configure | 4 ----
> newlib/libc/sys/configure | 9 +++------
> newlib/libc/sys/d10v/Makefile.in | 1 -
> newlib/libc/sys/d10v/configure | 4 ----
> newlib/libc/sys/decstation/Makefile.in | 1 -
> newlib/libc/sys/decstation/configure | 4 ----
> newlib/libc/sys/epiphany/Makefile.in | 1 -
> newlib/libc/sys/epiphany/configure | 4 ----
> newlib/libc/sys/h8300hms/Makefile.in | 1 -
> newlib/libc/sys/h8300hms/configure | 4 ----
> newlib/libc/sys/h8500hms/Makefile.in | 1 -
> newlib/libc/sys/h8500hms/configure | 4 ----
> newlib/libc/sys/linux/configure | 9 +++------
> newlib/libc/sys/linux/linuxthreads/configure | 9 +++------
> newlib/libc/sys/linux/linuxthreads/machine/configure | 9 +++------
> .../libc/sys/linux/linuxthreads/machine/i386/configure | 9 +++------
> newlib/libc/sys/linux/machine/configure | 9 +++------
> newlib/libc/sys/linux/machine/i386/configure | 9 +++------
> newlib/libc/sys/m88kbug/Makefile.in | 1 -
> newlib/libc/sys/m88kbug/configure | 4 ----
> newlib/libc/sys/mmixware/Makefile.in | 1 -
> newlib/libc/sys/mmixware/configure | 4 ----
> newlib/libc/sys/netware/Makefile.in | 1 -
> newlib/libc/sys/netware/configure | 4 ----
> newlib/libc/sys/or1k/Makefile.in | 1 -
> newlib/libc/sys/or1k/configure | 4 ----
> newlib/libc/sys/phoenix/Makefile.in | 1 -
> newlib/libc/sys/phoenix/configure | 4 ----
> newlib/libc/sys/phoenix/machine/Makefile.in | 1 -
> newlib/libc/sys/phoenix/machine/arm/Makefile.in | 1 -
> newlib/libc/sys/phoenix/machine/arm/configure | 4 ----
> newlib/libc/sys/phoenix/machine/configure | 4 ----
> newlib/libc/sys/rdos/Makefile.in | 1 -
> newlib/libc/sys/rdos/configure | 4 ----
> newlib/libc/sys/rtems/Makefile.in | 1 -
> newlib/libc/sys/rtems/configure | 4 ----
> newlib/libc/sys/sh/Makefile.in | 1 -
> newlib/libc/sys/sh/configure | 4 ----
> newlib/libc/sys/sparc64/Makefile.in | 1 -
> newlib/libc/sys/sparc64/configure | 4 ----
> newlib/libc/sys/sun4/Makefile.in | 1 -
> newlib/libc/sys/sun4/configure | 4 ----
> newlib/libc/sys/sysmec/Makefile.in | 1 -
> newlib/libc/sys/sysmec/configure | 4 ----
> newlib/libc/sys/sysnec810/Makefile.in | 1 -
> newlib/libc/sys/sysnec810/configure | 4 ----
> newlib/libc/sys/sysnecv850/Makefile.in | 1 -
> newlib/libc/sys/sysnecv850/configure | 4 ----
> newlib/libc/sys/sysvi386/Makefile.in | 1 -
> newlib/libc/sys/sysvi386/configure | 4 ----
> newlib/libc/sys/sysvnecv70/Makefile.in | 1 -
> newlib/libc/sys/sysvnecv70/configure | 4 ----
> newlib/libc/sys/tic80/Makefile.in | 1 -
> newlib/libc/sys/tic80/configure | 4 ----
> newlib/libc/sys/tirtos/Makefile.in | 1 -
> newlib/libc/sys/tirtos/configure | 4 ----
> newlib/libc/sys/w65/Makefile.in | 1 -
> newlib/libc/sys/w65/configure | 4 ----
> newlib/libc/sys/z8ksim/Makefile.in | 1 -
> newlib/libc/sys/z8ksim/configure | 4 ----
> newlib/libm/configure | 9 +++------
> newlib/libm/machine/aarch64/Makefile.in | 1 -
> newlib/libm/machine/aarch64/configure | 4 ----
> newlib/libm/machine/arm/Makefile.in | 1 -
> newlib/libm/machine/arm/configure | 4 ----
> newlib/libm/machine/configure | 9 +++------
> newlib/libm/machine/i386/configure | 9 +++------
> newlib/libm/machine/mips/Makefile.in | 1 -
> newlib/libm/machine/mips/configure | 4 ----
> newlib/libm/machine/nds32/configure | 5 +----
> newlib/libm/machine/powerpc/Makefile.in | 1 -
> newlib/libm/machine/powerpc/configure | 4 ----
> newlib/libm/machine/pru/Makefile.in | 1 -
> newlib/libm/machine/pru/configure | 4 ----
> newlib/libm/machine/riscv/Makefile.in | 1 -
> newlib/libm/machine/riscv/configure | 4 ----
> newlib/libm/machine/sparc/Makefile.in | 1 -
> newlib/libm/machine/sparc/configure | 4 ----
> newlib/libm/machine/spu/Makefile.in | 1 -
> newlib/libm/machine/spu/configure | 4 ----
> newlib/libm/machine/x86_64/configure | 9 +++------
> newlib/testsuite/lib/newlib.exp | 4 ++--
> 209 files changed, 53 insertions(+), 583 deletions(-)
>
> diff --git a/newlib/acinclude.m4 b/newlib/acinclude.m4
> index 1a5dc60dbbbd..755f6e1165f0 100644
> --- a/newlib/acinclude.m4
> +++ b/newlib/acinclude.m4
> @@ -214,9 +214,6 @@ AC_SUBST(NEWLIB_CFLAGS)
> NO_INCLUDE_LIST=${noinclude}
> AC_SUBST(NO_INCLUDE_LIST)
>
> -LDFLAGS=${ldflags}
> -AC_SUBST(LDFLAGS)
> -
> AM_CONDITIONAL(ELIX_LEVEL_0, test x[$]{newlib_elix_level} = x0)
> AM_CONDITIONAL(ELIX_LEVEL_1, test x[$]{newlib_elix_level} = x1)
> AM_CONDITIONAL(ELIX_LEVEL_2, test x[$]{newlib_elix_level} = x2)
> diff --git a/newlib/libc/sys/phoenix/machine/Makefile.in b/newlib/libc/sys/phoenix/machine/Makefile.in
> index 76b7a6545db4..8c380bc36498 100644
> --- a/newlib/libc/sys/phoenix/machine/Makefile.in
> +++ b/newlib/libc/sys/phoenix/machine/Makefile.in
> @@ -187,7 +187,6 @@ INSTALL_DATA = @INSTALL_DATA@
> INSTALL_PROGRAM = @INSTALL_PROGRAM@
> INSTALL_SCRIPT = @INSTALL_SCRIPT@
> INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
> -LDFLAGS = @LDFLAGS@
> LIBOBJS = @LIBOBJS@
> LIBS = @LIBS@
> LTLIBOBJS = @LTLIBOBJS@
> diff --git a/newlib/libc/sys/phoenix/machine/arm/Makefile.in b/newlib/libc/sys/phoenix/machine/arm/Makefile.in
> index d86ce691d312..bc9ae6e26503 100644
> --- a/newlib/libc/sys/phoenix/machine/arm/Makefile.in
> +++ b/newlib/libc/sys/phoenix/machine/arm/Makefile.in
> @@ -202,7 +202,6 @@ INSTALL_DATA = @INSTALL_DATA@
> INSTALL_PROGRAM = @INSTALL_PROGRAM@
> INSTALL_SCRIPT = @INSTALL_SCRIPT@
> INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
> -LDFLAGS = @LDFLAGS@
> LIBOBJS = @LIBOBJS@
> LIBS = @LIBS@
> LTLIBOBJS = @LTLIBOBJS@
> diff --git a/newlib/testsuite/lib/newlib.exp b/newlib/testsuite/lib/newlib.exp
> index f1df40e52618..8b43d2e5d3a0 100644
> --- a/newlib/testsuite/lib/newlib.exp
> +++ b/newlib/testsuite/lib/newlib.exp
> @@ -66,13 +66,13 @@ proc newlib_target_compile { source dest type options } {
> [target_info needs_status_wrapper] != "0" && \
> [info exists gluefile] } {
> lappend options "libs=$gluefile"
> - lappend options "ldflags=$wrap_flags"
> + lappend options "LDFLAGS=$wrap_flags"
> }
>
> if [string match $host_triplet $target_triplet] then {
> if [string match "i686-pc-linux-gnu" $host_triplet] then {
> lappend options "libs=$objdir/crt0.o -lc -lgcc"
> - lappend options "ldflags=-nostdlib -L$objdir/.libs [newlib_include_flags]"
> + lappend options "LDFLAGS=-nostdlib -L$objdir/.libs [newlib_include_flags]"
> }
> }
>
> --
> 2.34.1
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
^ permalink raw reply [flat|nested] 4+ messages in thread