On z-series, the current version of the GNU toolchain produces warnings such as: ``` /usr/lib64/gcc/[...]/s390x-suse-linux/bin/ld: warning: ztrmm_kernel_RC_Z14.o: missing .note.GNU-stack section implies executable stack /usr/lib64/[...]/s390x-suse-linux/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker ``` To prevent this message and make sure we are future proof, add ``` .section .note.GNU-stack,"",@progbits ``` Also add the `.size` bit to give the asm defined functions a proper size in the symbol table. Signed-off-by: Egbert Eich <eich@suse.com>tags/v0.3.30
@@ -103,9 +103,16 @@ static inline int blas_quickdivide(blasint x, blasint y){ | |||||
.global REALNAME ;\ | .global REALNAME ;\ | ||||
.type REALNAME, %function ;\ | .type REALNAME, %function ;\ | ||||
REALNAME: | REALNAME: | ||||
#define EPILOGUE | |||||
#if defined(__ELF__) && defined(__linux__) | |||||
# define GNUSTACK .section .note.GNU-stack,"",@progbits | |||||
#else | |||||
# define GNUSTACK | |||||
#endif | |||||
#define EPILOGUE \ | |||||
.size REALNAME, .-REALNAME; \ | |||||
GNUSTACK | |||||
#define PROFCODE | #define PROFCODE | ||||
@@ -714,6 +714,8 @@ ld %f10,136(%r15) | |||||
ld %f11,144(%r15) | ld %f11,144(%r15) | ||||
ld %f12,152(%r15) | ld %f12,152(%r15) | ||||
br %r14 | br %r14 | ||||
EPILOGUE | |||||
.end | .end | ||||
@@ -604,6 +604,8 @@ ALIGN_2 | |||||
/*end*/ | /*end*/ | ||||
lmg %r6,%r12,48(%r15) | lmg %r6,%r12,48(%r15) | ||||
br %r14 | br %r14 | ||||
EPILOGUE | |||||
.end | .end | ||||
@@ -845,6 +845,8 @@ ALIGN_2 | |||||
lmg %r6,%r12,48(%r15) | lmg %r6,%r12,48(%r15) | ||||
#endif | #endif | ||||
br %r14 | br %r14 | ||||
EPILOGUE | |||||
.end | .end | ||||
@@ -864,6 +864,8 @@ ALIGN_2 | |||||
lmg %r6,%r12,48(%r15) | lmg %r6,%r12,48(%r15) | ||||
#endif | #endif | ||||
br %r14 | br %r14 | ||||
EPILOGUE | |||||
.end | .end | ||||
@@ -719,6 +719,8 @@ ld %f10,136(%r15) | |||||
ld %f11,144(%r15) | ld %f11,144(%r15) | ||||
ld %f12,152(%r15) | ld %f12,152(%r15) | ||||
br %r14 | br %r14 | ||||
EPILOGUE | |||||
.end | .end | ||||