diff options
| -rw-r--r-- | codegen.c | 4 | ||||
| -rw-r--r-- | justfile | 2 | ||||
| -rw-r--r-- | tests/050.sh | 2 | ||||
| -rw-r--r-- | tests/test_diff.sh | 2 | ||||
| -rw-r--r-- | tests/test_example.sh | 2 | ||||
| -rw-r--r-- | tests/test_exit_code.sh | 2 | ||||
| -rw-r--r-- | tests/test_output.sh | 2 |
7 files changed, 10 insertions, 6 deletions
@@ -531,6 +531,10 @@ void codegen(Program* prog) { printf(".intel_syntax noprefix\n\n"); + // For GNU ld: + // https://sourceware.org/binutils/docs/ld/Options.html + printf(".section .note.GNU-stack,\"\",@progbits\n\n"); + printf(".section .rodata\n\n"); for (int i = 0; prog->str_literals[i]; ++i) { printf(".Lstr__%d:\n", i + 1); @@ -11,7 +11,7 @@ build N="1": prev=$(({{N}} - 1)) fi "./ducc${prev}" main.c > main{{N}}.s - gcc -s -Wl,-z,noexecstack -o ducc{{N}} main{{N}}.s + gcc -s -o ducc{{N}} main{{N}}.s fi build-upto-5-gen: diff --git a/tests/050.sh b/tests/050.sh index 295ac2d..7e05ec2 100644 --- a/tests/050.sh +++ b/tests/050.sh @@ -17,7 +17,7 @@ if [[ $? -ne 0 ]]; then cat main.s >&2 exit 1 fi -gcc -Wl,-z,noexecstack -o a.out main.s +gcc -o a.out main.s ./a.out "$@" > output exit_code=$? diff --git a/tests/test_diff.sh b/tests/test_diff.sh index 14e5200..adc281e 100644 --- a/tests/test_diff.sh +++ b/tests/test_diff.sh @@ -4,7 +4,7 @@ cat > main.c if [[ $? -ne 0 ]]; then exit 1 fi -gcc -Wl,-z,noexecstack -o a.out main.s +gcc -o a.out main.s if [[ ! -f input ]]; then touch input fi diff --git a/tests/test_example.sh b/tests/test_example.sh index d5feaab..f76b606 100644 --- a/tests/test_example.sh +++ b/tests/test_example.sh @@ -4,7 +4,7 @@ filename="../../../examples/$1.c" if [[ $? -ne 0 ]]; then exit 1 fi -gcc -Wl,-z,noexecstack -o a.out main.s +gcc -o a.out main.s if [[ ! -f input ]]; then touch input fi diff --git a/tests/test_exit_code.sh b/tests/test_exit_code.sh index 7119b1d..4cdee0a 100644 --- a/tests/test_exit_code.sh +++ b/tests/test_exit_code.sh @@ -4,7 +4,7 @@ cat > main.c if [[ $? -ne 0 ]]; then exit 1 fi -gcc -Wl,-z,noexecstack -o a.out main.s +gcc -o a.out main.s ./a.out exit_code=$? diff --git a/tests/test_output.sh b/tests/test_output.sh index a286a4a..63dce46 100644 --- a/tests/test_output.sh +++ b/tests/test_output.sh @@ -4,7 +4,7 @@ cat > main.c if [[ $? -ne 0 ]]; then exit 1 fi -gcc -Wl,-z,noexecstack -o a.out main.s +gcc -o a.out main.s output="$(./a.out)" exit_code=$? |
