gcc flags for stencil generation added to prevent a GOT for extern variables: -fno-pic -fno-plt

This commit is contained in:
Nicolas 2025-10-31 10:16:21 +01:00
parent 6259db89ce
commit c2d1fb7eea
3 changed files with 26 additions and 24 deletions

View File

@ -7,10 +7,10 @@ DEST=src/copapy/obj
python3 stencils/generate_stencils.py $SRC python3 stencils/generate_stencils.py $SRC
mkdir -p $DEST mkdir -p $DEST
gcc --version gcc --version
#gcc -c $SRC -O0 -o $DEST/stencils_x86_64_O0.o #gcc -fno-pic -fno-plt -c $SRC -O0 -o $DEST/stencils_x86_64_O0.o
#gcc -c $SRC -O1 -o $DEST/stencils_x86_64_O1.o #gcc -fno-pic -fno-plt -c $SRC -O1 -o $DEST/stencils_x86_64_O1.o
#gcc -c $SRC -O2 -o $DEST/stencils_x86_64_O2.o #gcc -fno-pic -fno-plt -c $SRC -O2 -o $DEST/stencils_x86_64_O2.o
gcc -c $SRC -O3 -o $DEST/stencils_x86_64_O3.o gcc -fno-pic -fno-plt -c $SRC -O3 -o $DEST/stencils_x86_64_O3.o
mkdir bin -p mkdir bin -p
gcc -Wall -Wextra -Wconversion -Wsign-conversion \ gcc -Wall -Wextra -Wconversion -Wsign-conversion \

View File

@ -7,6 +7,7 @@ mkdir -p bin
SRC=bin/stencils.c SRC=bin/stencils.c
DEST=src/copapy/obj DEST=src/copapy/obj
OPT=O3 OPT=O3
FLAGS="-fno-pic -fno-plt"
mkdir -p $DEST mkdir -p $DEST
@ -14,45 +15,45 @@ mkdir -p $DEST
# Windows x86_64 (ARM64) # Windows x86_64 (ARM64)
python3 stencils/generate_stencils.py --abi ms $SRC python3 stencils/generate_stencils.py --abi ms $SRC
gcc-13 -$OPT -c $SRC -o $DEST/stencils_AMD64_$OPT.o gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_AMD64_$OPT.o
# Windows x86 # Windows x86
gcc-13 -m32 -$OPT -c $SRC -o $DEST/stencils_x86_$OPT.o gcc-13 $FLAGS -m32 -$OPT -c $SRC -o $DEST/stencils_x86_$OPT.o
# Native x86_64 # Native x86_64
python3 stencils/generate_stencils.py $SRC python3 stencils/generate_stencils.py $SRC
gcc-13 -$OPT -c $SRC -o $DEST/stencils_x86_64_$OPT.o gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_x86_64_$OPT.o
# Native i686 # Native i686
gcc-13 -m32 -$OPT -c $SRC -o $DEST/stencils_i686_$OPT.o gcc-13 $FLAGS -m32 -$OPT -c $SRC -o $DEST/stencils_i686_$OPT.o
# ARM64 linux (aarch64) # ARM64 linux (aarch64)
aarch64-linux-gnu-gcc-13 -$OPT -c $SRC -o $DEST/stencils_aarch64_$OPT.o aarch64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_aarch64_$OPT.o
# ARM64 macos (copy aarch64) # ARM64 macos (copy aarch64)
cp $DEST/stencils_aarch64_$OPT.o $DEST/stencils_arm64_$OPT.o cp $DEST/stencils_aarch64_$OPT.o $DEST/stencils_arm64_$OPT.o
# ARMv7 # ARMv7
arm-linux-gnueabihf-gcc-13 -$OPT -c $SRC -o $DEST/stencils_armv7_$OPT.o arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_armv7_$OPT.o
# PowerPC64LE # PowerPC64LE
# powerpc64le-linux-gnu-gcc-13 -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o # powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o
# S390x # S390x
# s390x-linux-gnu-gcc-13 -$OPT -c $SRC -o $DEST/stencils_s390x_$OPT.o # s390x-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_s390x_$OPT.o
# Mips (Big Endian) # Mips (Big Endian)
mips-linux-gnu-gcc-13 -$OPT -c $SRC -o $DEST/stencils_mips_$OPT.o mips-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mips_$OPT.o
# Mips (Little Endian) # Mips (Little Endian)
mipsel-linux-gnu-gcc-13 -$OPT -c $SRC -o $DEST/stencils_mipsel_$OPT.o mipsel-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mipsel_$OPT.o
# RISCV 32 Bit # RISCV 32 Bit
# riscv64-linux-gnu-gcc-13 -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv32_$OPT.o # riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv32_$OPT.o
# RISCV 64 Bit # RISCV 64 Bit
riscv64-linux-gnu-gcc-13 -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o
# -------------- Cross compile runner -------------- # -------------- Cross compile runner --------------

View File

@ -5,18 +5,19 @@ set -v
mkdir -p bin mkdir -p bin
SRC=bin/stencils.c SRC=bin/stencils.c
DEST=src/copapy/obj DEST=src/copapy/obj
FLAGS="-fno-pic -fno-plt"
python stencils/generate_stencils.py $SRC python stencils/generate_stencils.py $SRC
mkdir -p $DEST mkdir -p $DEST
gcc-12 -c $SRC -O0 -o $DEST/stencils_x86_64_O0.o gcc-12 $FLAGS -c $SRC -O0 -o $DEST/stencils_x86_64_O0.o
gcc-12 -c $SRC -O1 -o $DEST/stencils_x86_64_O1.o gcc-12 $FLAGS -c $SRC -O1 -o $DEST/stencils_x86_64_O1.o
gcc-12 -c $SRC -O2 -o $DEST/stencils_x86_64_O2.o gcc-12 $FLAGS -c $SRC -O2 -o $DEST/stencils_x86_64_O2.o
gcc-12 -c $SRC -O3 -o $DEST/stencils_x86_64_O3.o gcc-12 $FLAGS -c $SRC -O3 -o $DEST/stencils_x86_64_O3.o
python stencils/generate_stencils.py --abi ms $SRC python stencils/generate_stencils.py --abi ms $SRC
gcc-12 -c $SRC -O0 -o $DEST/stencils_AMD64_O0.o gcc-12 $FLAGS -c $SRC -O0 -o $DEST/stencils_AMD64_O0.o
gcc-12 -c $SRC -O1 -o $DEST/stencils_AMD64_O1.o gcc-12 $FLAGS -c $SRC -O1 -o $DEST/stencils_AMD64_O1.o
gcc-12 -c $SRC -O2 -o $DEST/stencils_AMD64_O2.o gcc-12 $FLAGS -c $SRC -O2 -o $DEST/stencils_AMD64_O2.o
gcc-12 -c $SRC -O3 -o $DEST/stencils_AMD64_O3.o gcc-12 $FLAGS -c $SRC -O3 -o $DEST/stencils_AMD64_O3.o