This is the mail archive of the
mailing list for the GCC project.
"GOT" under aarch64
- From: jacob navia <jacob at jacob dot remcomp dot fr>
- To: gcc at gcc dot gnu dot org
- Date: Fri, 22 Sep 2017 12:30:49 +0200
- Subject: "GOT" under aarch64
- Authentication-results: sourceware.org; auth=none
- Reply-to: jacob at jacob dot remcomp dot fr
I am writing a code generator for ARM64.
To access a global variable I was generating
This worked without any problems with gcc version 4.9.2 (Debian/Linaro
4.9.2-10) and GNU ld (GNU Binutils for Debian) 2.25.
I have updated my system and now with gcc version 6.3.0 20170516 (Debian
6.3.0-18) and GNU ld (GNU Binutils for Debian) 2.28. The linker
complains about illegal relocations.
Investigating this, I noticed that now gcc generates
adrp x0, :got:stderr
ldr x0, [x0, #:got_lo12:stderr]
I changed now my code generator and it works again. The problem for me is:
1) How can I know what I should generate? Should I figure out the gcc
2) Is there any documentation for this change somewhere? What does it mean?
3) What should be a portable solution for this problem?
Thanks in advance for your time.