Author: andrew
Date: Mon Dec  1 21:04:26 2014
New Revision: 275378
URL: https://svnweb.freebsd.org/changeset/base/275378

Log:
  Pull in the NetBSD global offset table handling code. Clang 3.5 creates
  relocations the linker complains about.
  
  Obtained from:        NetBSD
  MFC after:    1 Week

Modified:
  head/sys/arm/include/asm.h

Modified: head/sys/arm/include/asm.h
==============================================================================
--- head/sys/arm/include/asm.h  Mon Dec  1 20:51:01 2014        (r275377)
+++ head/sys/arm/include/asm.h  Mon Dec  1 21:04:26 2014        (r275378)
@@ -112,10 +112,16 @@
        ldr     x, [x, got]
 #define        GOT_INIT(got,gotsym,pclabel) \
        ldr     got, gotsym;    \
-       add     got, got, pc;   \
-       pclabel:
+       pclabel: add    got, got, pc
+#ifdef __thumb__
 #define        GOT_INITSYM(gotsym,pclabel) \
-       gotsym: .word _C_LABEL(_GLOBAL_OFFSET_TABLE_) + (. - (pclabel+4))
+       .align 0;               \
+       gotsym: .word _C_LABEL(_GLOBAL_OFFSET_TABLE_) - (pclabel+4)
+#else
+#define        GOT_INITSYM(gotsym,pclabel) \
+       .align 0;               \
+       gotsym: .word _C_LABEL(_GLOBAL_OFFSET_TABLE_) - (pclabel+8)
+#endif
 
 #ifdef __STDC__
 #define        PIC_SYM(x,y)    x ## ( ## y ## )
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to