|
@@ -158,10 +158,12 @@ SECTIONS
|
|
|
__vvar_page = .;
|
|
|
|
|
|
.vvar : AT(ADDR(.vvar) - LOAD_OFFSET) {
|
|
|
+ /* work around gold bug 13023 */
|
|
|
+ __vvar_beginning_hack = .;
|
|
|
|
|
|
- /* Place all vvars at the offsets in asm/vvar.h. */
|
|
|
-#define EMIT_VVAR(name, offset) \
|
|
|
- . = offset; \
|
|
|
+ /* Place all vvars at the offsets in asm/vvar.h. */
|
|
|
+#define EMIT_VVAR(name, offset) \
|
|
|
+ . = __vvar_beginning_hack + offset; \
|
|
|
*(.vvar_ ## name)
|
|
|
#define __VVAR_KERNEL_LDS
|
|
|
#include <asm/vvar.h>
|
|
@@ -184,15 +186,17 @@ SECTIONS
|
|
|
|
|
|
. = VSYSCALL_ADDR;
|
|
|
.vsyscall : AT(VLOAD(.vsyscall)) {
|
|
|
+ /* work around gold bug 13023 */
|
|
|
+ __vsyscall_beginning_hack = .;
|
|
|
*(.vsyscall_0)
|
|
|
|
|
|
- . = 1024;
|
|
|
+ . = __vsyscall_beginning_hack + 1024;
|
|
|
*(.vsyscall_1)
|
|
|
|
|
|
- . = 2048;
|
|
|
+ . = __vsyscall_beginning_hack + 2048;
|
|
|
*(.vsyscall_2)
|
|
|
|
|
|
- . = 4096; /* Pad the whole page. */
|
|
|
+ . = __vsyscall_beginning_hack + 4096; /* Pad the whole page. */
|
|
|
} :user =0xcc
|
|
|
. = ALIGN(__vsyscall_0 + PAGE_SIZE, PAGE_SIZE);
|
|
|
|