Skip to content

relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object #519

@zhangbo-miuNEST

Description

@zhangbo-miuNEST

Master branch code can't be compiled on Ubuntu 20.04.

Error msg is :
/usr/bin/ld: ../boot/a6le/kernel.o: relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIE

if I change "./configure" to "CFLAGS=-fPIE ./configure" or "CFLAGS=-fPIC ./configure", the same error.

happy@ubuntu:~/ChezScheme$ ./configure
happy@ubuntu:~/ChezScheme$ make -j4
(cd a6le && make build)
(cd c && make)
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib statics.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib segment.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib alloc.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib symbol.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib intern.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib gcwrapper.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib gc-ocd.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib gc-oce.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib number.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib schsig.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib io.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib new-io.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib print.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib fasl.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib stats.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib foreign.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib prim.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib prim5.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib flushcache.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib schlib.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib thread.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib expeditor.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib scheme.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib compress-io.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib i3le.c
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -c -DX86_64 -I../boot/a6le -I../zlib -I../lz4/lib main.c
cp -p main.o ../boot/a6le/main.o
ld -melf_x86_64 -r -X -o ../boot/a6le/kernel.o statics.o segment.o alloc.o symbol.o intern.o gcwrapper.o gc-ocd.o gc-oce.o number.o schsig.o io.o new-io.o print.o fasl.o stats.o foreign.o prim.o prim5.o flushcache.o schlib.o thread.o expeditor.o scheme.o compress-io.o i3le.o ../zlib/libz.a ../lz4/lib/liblz4.a
gcc  -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -Wno-implicit-fallthrough -O2  -rdynamic -o ../bin/a6le/scheme ../boot/a6le/main.o ../boot/a6le/kernel.o -lm -ldl -lncurses -lrt -luuid  
/usr/bin/ld: ../boot/a6le/kernel.o: relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIE
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:40: ../bin/a6le/scheme] Error 1
make[1]: *** [Makefile:21: build] Error 2
make: *** [Makefile:20: build] Error 2
happy@ubuntu:~/ChezScheme$ uname -a
Linux ubuntu 5.4.0-37-generic #41-Ubuntu SMP Wed Jun 3 18:57:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
happy@ubuntu:~/ChezScheme$ gcc --version
gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

happy@ubuntu:~/ChezScheme$ ld --version
GNU ld (GNU Binutils for Ubuntu) 2.34
Copyright (C) 2020 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.
happy@ubuntu:~/ChezScheme$ 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions