-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
Recent ld versions emit this warning when linking the (object file) created from ARM assembly:
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: warning: field_10x26_arm.o: missing .note.GNU-stack section implies executable stack
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
"Executable stack" sounds like something we should try to avoid.
To reproduce, try ./configure --host=arm-linux-gnueabihf --enable-experimental --with-asm=arm32
(e.g, in the CI image):
root@ad8b1ab4bedc:/tmp/secp256k1# make
make all-am
make[1]: Entering directory '/tmp/secp256k1'
CC src/bench-bench.o
CC src/libsecp256k1_la-secp256k1.lo
CCAS src/asm/field_10x26_arm.lo
CCLD libsecp256k1_common.la
CC src/libsecp256k1_precomputed_la-precomputed_ecmult.lo
CC src/libsecp256k1_precomputed_la-precomputed_ecmult_gen.lo
CCLD libsecp256k1_precomputed.la
CCLD libsecp256k1.la
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: warning: field_10x26_arm.o: missing .note.GNU-stack section implies executable stack
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
CCLD bench
CC src/bench_internal-bench_internal.o
CCLD bench_internal
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: warning: field_10x26_arm.o: missing .note.GNU-stack section implies executable stack
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
CC src/bench_ecmult-bench_ecmult.o
CCLD bench_ecmult
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: warning: field_10x26_arm.o: missing .note.GNU-stack section implies executable stack
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
CC src/noverify_tests-tests.o
CCLD noverify_tests
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: warning: field_10x26_arm.o: missing .note.GNU-stack section implies executable stack
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
CC src/tests-tests.o
CCLD tests
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: warning: field_10x26_arm.o: missing .note.GNU-stack section implies executable stack
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
CC src/ctime_tests-ctime_tests.o
CCLD ctime_tests
CC src/exhaustive_tests-tests_exhaustive.o
CCLD exhaustive_tests
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: warning: field_10x26_arm.o: missing .note.GNU-stack section implies executable stack
/usr/lib/gcc-cross/arm-linux-gnueabihf/12/../../../../arm-linux-gnueabihf/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
make[1]: Leaving directory '/tmp/secp256k1'
root@ad8b1ab4bedc:/tmp/secp256k1# ld -version
GNU ld (GNU Binutils for Debian) 2.40
Copyright (C) 2023 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.```