__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>
. = 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);