@@ -12,17 +12,17 @@ if [ "" = "$CFLAGS" ]; then
12
12
# OPTLEVEL will be merged back into CFLAGS, further down
13
13
# OPTLEVEL is probably overly elaborate, but it works
14
14
case " $_DEBUG " in
15
- 3) OPTLEVEL=" -O2 -g "
15
+ 3) OPTLEVEL=" -O2 -g " ; DEBUG=1
16
16
NASM_FLAGS=" -g" ;;
17
- 2) OPTLEVEL=" -O0 -ggdb -DOPTMO0 "
17
+ 2) OPTLEVEL=" -O0 -ggdb -DOPTMO0 " ; DEBUG=1
18
18
NASM_FLAGS=" -g" ;;
19
- 1) OPTLEVEL=" -O2 -g "
19
+ 1) OPTLEVEL=" -O2 -g " ; DEBUG=1
20
20
NASM_FLAGS=" -g"
21
21
jplatform64=$( ./jplatform64.sh) -debug;;
22
- * ) OPTLEVEL=" -O2 " ;;
22
+ * ) OPTLEVEL=" -O2 " ; DEBUG=0 ; ;
23
23
esac
24
24
else
25
- case " $CFLAGS " in * -O0* ) OPTLEVEL=" -DOPTMO0 " ;; * ) ;; esac
25
+ case " $CFLAGS " in * -O0* ) OPTLEVEL=" -DOPTMO0 " ; DEBUG=1 ;; * ) DEBUG=0 ;; esac
26
26
fi
27
27
echo " jplatform64=$jplatform64 "
28
28
@@ -167,6 +167,10 @@ else
167
167
168
168
fi
169
169
170
+ if [ $DEBUG -eq 1 ] ; then
171
+ common=" $common -DDEBUG"
172
+ fi
173
+
170
174
case " $jplatform64 " in
171
175
darwin/* ) common=" $common -fno-common" ;; # other platforms already default to this
172
176
esac
@@ -388,7 +392,7 @@ case $jplatform64 in
388
392
raspberry/j32* ) # linux raspbian arm
389
393
TARGET=libj.so
390
394
CFLAGS=" $common -std=gnu99 -Wno-overflow -marm -march=armv6 -mfloat-abi=hard -mfpu=vfp -DRASPI "
391
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm -ldl $LDTHREAD $LDOPENMP "
395
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm -ldl $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
392
396
SRC_ASM=" ${SRC_ASM_RASPI32} "
393
397
GASM_FLAGS=" "
394
398
FLAGS_SLEEF=" -DENABLE_VECEXT " # broken in upstream
@@ -398,7 +402,7 @@ case $jplatform64 in
398
402
raspberry/j64* ) # linux arm64
399
403
TARGET=libj.so
400
404
CFLAGS=" $common -march=armv8-a+crc -DRASPI -DC_CRC32C=1 " # mno-outline-atomics unavailable on clang-7
401
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm -ldl $LDTHREAD $LDOPENMP "
405
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm -ldl $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
402
406
OBJS_AESARM=" aes-arm.o "
403
407
SRC_ASM=" ${SRC_ASM_RASPI} "
404
408
GASM_FLAGS=" "
@@ -413,7 +417,7 @@ case $jplatform64 in
413
417
CFLAGS=" $common -m32 -msse2 -mfpmath=sse "
414
418
# slower, use 387 fpu and truncate extra precision
415
419
# CFLAGS="$common -m32 -ffloat-store "
416
- LDFLAGS=" -shared -Wl,-soname,libj.so -m32 -lm -lkvm $LDOPENMP32 $LDTHREAD "
420
+ LDFLAGS=" -shared -Wl,-soname,libj.so -m32 -lm -lkvm $LDTHREAD $LDOPENMP32 -Wl,-z,noexecstack "
417
421
OBJS_AESNI=" aes-ni.o "
418
422
SRC_ASM=" ${SRC_ASM_LINUX32} "
419
423
GASM_FLAGS=" -m32"
@@ -424,7 +428,7 @@ case $jplatform64 in
424
428
openbsd/j64arm) # openbsd arm64
425
429
TARGET=libj.so
426
430
CFLAGS=" $common -march=armv8-a+crc -DC_CRC32C=1 " # mno-outline-atomics unavailable on clang-7
427
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm -lkvm $LDTHREAD $LDOPENMP "
431
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm -lkvm $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
428
432
OBJS_AESARM=" aes-arm.o "
429
433
SRC_ASM=" ${SRC_ASM_RASPI} "
430
434
GASM_FLAGS=" "
@@ -435,7 +439,7 @@ case $jplatform64 in
435
439
openbsd/j64avx512* ) # openbsd intel 64bit avx512
436
440
TARGET=libj.so
437
441
CFLAGS=" $common -DC_AVX2=1 -DC_AVX512=1 "
438
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm -lkvm $LDTHREAD $LDOPENMP "
442
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm -lkvm $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
439
443
CFLAGS_SIMD=" -march=skylake-avx512 -mtune=skylake-avx512 -mavx2 -mfma -mbmi -mbmi2 -mlzcnt -mmovbe -mpopcnt -mno-vzeroupper "
440
444
OBJS_FMA=" gemm_int-fma.o "
441
445
OBJS_AESNI=" aes-ni.o "
@@ -449,7 +453,7 @@ case $jplatform64 in
449
453
openbsd/j64avx2* ) # openbsd intel 64bit avx2
450
454
TARGET=libj.so
451
455
CFLAGS=" $common -DC_AVX2=1 "
452
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm -lkvm $LDTHREAD $LDOPENMP "
456
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm -lkvm $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
453
457
CFLAGS_SIMD=" -march=skylake -mtune=skylake -mavx2 -mfma -mbmi -mbmi2 -mlzcnt -mmovbe -mpopcnt -mno-vzeroupper "
454
458
OBJS_FMA=" gemm_int-fma.o "
455
459
OBJS_AESNI=" aes-ni.o "
@@ -462,7 +466,7 @@ case $jplatform64 in
462
466
openbsd/j64* ) # openbsd intel 64bit nonavx
463
467
TARGET=libj.so
464
468
CFLAGS=" $common -msse3 "
465
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm -lkvm $LDTHREAD $LDOPENMP "
469
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm -lkvm $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
466
470
OBJS_AESNI=" aes-ni.o "
467
471
SRC_ASM=" ${SRC_ASM_LINUX} "
468
472
GASM_FLAGS=" "
@@ -477,7 +481,7 @@ case $jplatform64 in
477
481
CFLAGS=" $common -m32 -msse2 -mfpmath=sse "
478
482
# slower, use 387 fpu and truncate extra precision
479
483
# CFLAGS="$common -m32 -ffloat-store "
480
- LDFLAGS=" -shared -Wl,-soname,libj.so -m32 -lm $LDOPENMP32 $LDTHREAD "
484
+ LDFLAGS=" -shared -Wl,-soname,libj.so -m32 -lm $LDOPENMP32 $LDTHREAD -Wl,-z,noexecstack "
481
485
OBJS_AESNI=" aes-ni.o "
482
486
SRC_ASM=" ${SRC_ASM_LINUX32} "
483
487
GASM_FLAGS=" -m32"
@@ -488,7 +492,7 @@ case $jplatform64 in
488
492
freebsd/j64arm) # freebsd arm64
489
493
TARGET=libj.so
490
494
CFLAGS=" $common -march=armv8-a+crc -DC_CRC32C=1 " # mno-outline-atomics unavailable on clang-7
491
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm $LDTHREAD $LDOPENMP "
495
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
492
496
OBJS_AESARM=" aes-arm.o "
493
497
SRC_ASM=" ${SRC_ASM_RASPI} "
494
498
GASM_FLAGS=" "
@@ -499,7 +503,7 @@ case $jplatform64 in
499
503
freebsd/j64avx512* ) # freebsd intel 64bit avx512
500
504
TARGET=libj.so
501
505
CFLAGS=" $common -DC_AVX2=1 -DC_AVX512=1 "
502
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm $LDTHREAD $LDOPENMP "
506
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
503
507
CFLAGS_SIMD=" -march=skylake-avx512 -mtune=skylake-avx512 -mavx2 -mfma -mbmi -mbmi2 -mlzcnt -mmovbe -mpopcnt -mno-vzeroupper "
504
508
OBJS_FMA=" gemm_int-fma.o "
505
509
OBJS_AESNI=" aes-ni.o "
@@ -513,7 +517,7 @@ case $jplatform64 in
513
517
freebsd/j64avx2* ) # freebsd intel 64bit avx2
514
518
TARGET=libj.so
515
519
CFLAGS=" $common -DC_AVX2=1 "
516
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm $LDTHREAD $LDOPENMP "
520
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
517
521
CFLAGS_SIMD=" -march=skylake -mtune=skylake -mavx2 -mfma -mbmi -mbmi2 -mlzcnt -mmovbe -mpopcnt -mno-vzeroupper "
518
522
OBJS_FMA=" gemm_int-fma.o "
519
523
OBJS_AESNI=" aes-ni.o "
@@ -526,7 +530,7 @@ case $jplatform64 in
526
530
freebsd/j64* ) # freebsd intel 64bit nonavx
527
531
TARGET=libj.so
528
532
CFLAGS=" $common -msse3 "
529
- LDFLAGS=" -shared -Wl,-soname,libj.so -lm $LDTHREAD $LDOPENMP "
533
+ LDFLAGS=" -shared -Wl,-soname,libj.so -lm $LDTHREAD $LDOPENMP -Wl,-z,noexecstack "
530
534
OBJS_AESNI=" aes-ni.o "
531
535
SRC_ASM=" ${SRC_ASM_LINUX} "
532
536
GASM_FLAGS=" "
0 commit comments