yann@1: Retrieved with yann@1: wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/m68k/dl-machine.h.diff?r1=1.53&r2=1.55&cvsroot=glibc' yann@1: yann@1: Fixes error yann@1: yann@1: In file included from dynamic-link.h:21, yann@1: from dl-load.c:32: yann@1: ../sysdeps/m68k/dl-machine.h:108: error: parse error before '.' token yann@1: ../sysdeps/m68k/dl-machine.h:109: error: stray '@' in program yann@1: ../sysdeps/m68k/dl-machine.h:120: error: syntax error at '#' token yann@1: ../sysdeps/m68k/dl-machine.h:123: error: stray '\' in program yann@1: ../sysdeps/m68k/dl-machine.h:123: error: missing terminating " character yann@1: ../sysdeps/m68k/dl-machine.h:148: error: stray '@' in program yann@1: ../sysdeps/m68k/dl-machine.h:152: error: syntax error at '#' token yann@1: ../sysdeps/m68k/dl-machine.h:156: error: stray '@' in program yann@1: ../sysdeps/m68k/dl-machine.h:161: error: stray '@' in program yann@1: ../sysdeps/m68k/dl-machine.h:163: error: stray '@' in program yann@1: ../sysdeps/m68k/dl-machine.h:166: error: stray '@' in program yann@1: In file included from dynamic-link.h:21, yann@1: from dl-load.c:32: yann@1: ../sysdeps/m68k/dl-machine.h:175:4: invalid preprocessing directive #Call yann@1: ../sysdeps/m68k/dl-machine.h:179: error: stray '@' in program yann@1: ../sysdeps/m68k/dl-machine.h:180: error: stray '@' in program yann@1: ../sysdeps/m68k/dl-machine.h:181: error: syntax error at '#' token yann@1: ../sysdeps/m68k/dl-machine.h:182: error: syntax error at '#' token yann@1: ../sysdeps/m68k/dl-machine.h:184: error: stray '@' in program yann@1: ../sysdeps/m68k/dl-machine.h:187: error: missing terminating ' character yann@1: ../sysdeps/m68k/dl-machine.h:190: error: missing terminating " character yann@1: dl-load.c: In function `_dl_map_object_from_fd': yann@1: dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated yann@1: dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated yann@1: dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated yann@1: dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated yann@1: make[2]: *** [/home/dank/wk/crosstool-0.28-rc24/build/m68k-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1 yann@1: yann@1: =================================================================== yann@1: RCS file: /cvs/glibc/libc/sysdeps/m68k/dl-machine.h,v yann@1: retrieving revision 1.53 yann@1: retrieving revision 1.55 yann@1: diff -u -r1.53 -r1.55 yann@1: --- libc/sysdeps/m68k/dl-machine.h 2001/08/26 22:26:36 1.53 yann@1: +++ libc/sysdeps/m68k/dl-machine.h 2002/02/01 10:28:20 1.55 yann@1: @@ -1,5 +1,5 @@ yann@1: /* Machine-dependent ELF dynamic relocation inline functions. m68k version. yann@1: - Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. yann@1: + Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. yann@1: This file is part of the GNU C Library. yann@1: yann@1: The GNU C Library is free software; you can redistribute it and/or yann@1: @@ -85,11 +85,11 @@ yann@1: { yann@1: got[2] = (Elf32_Addr) &_dl_runtime_profile; yann@1: yann@1: - if (_dl_name_match_p (_dl_profile, l)) yann@1: + if (_dl_name_match_p (GL(dl_profile), l)) yann@1: { yann@1: /* This is the object we are looking for. Say that we really yann@1: want profiling and the timers are started. */ yann@1: - _dl_profile_map = l; yann@1: + GL(dl_profile_map) = l; yann@1: } yann@1: } yann@1: else yann@1: @@ -104,22 +104,22 @@ yann@1: /* This code is used in dl-runtime.c to call the `fixup' function yann@1: and then redirect to the address it returns. */ yann@1: #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \ yann@1: -"| Trampoline for " #fixup_name " yann@1: - .globl " #tramp_name " yann@1: - .type " #tramp_name ", @function yann@1: -" #tramp_name ": yann@1: - | Save %a0 (struct return address) and %a1. yann@1: - move.l %a0, -(%sp) yann@1: - move.l %a1, -(%sp) yann@1: - | Call the real address resolver. yann@1: - jbsr " #fixup_name " yann@1: - | Restore register %a0 and %a1. yann@1: - move.l (%sp)+, %a1 yann@1: - move.l (%sp)+, %a0 yann@1: - | Pop parameters yann@1: - addq.l #8, %sp yann@1: - | Call real function. yann@1: - jmp (%d0) yann@1: +"| Trampoline for " #fixup_name "\n\ yann@1: + .globl " #tramp_name "\n\ yann@1: + .type " #tramp_name ", @function\n\ yann@1: +" #tramp_name ":\n\ yann@1: + | Save %a0 (struct return address) and %a1.\n\ yann@1: + move.l %a0, -(%sp)\n\ yann@1: + move.l %a1, -(%sp)\n\ yann@1: + | Call the real address resolver.\n\ yann@1: + jbsr " #fixup_name "\n\ yann@1: + | Restore register %a0 and %a1.\n\ yann@1: + move.l (%sp)+, %a1\n\ yann@1: + move.l (%sp)+, %a0\n\ yann@1: + | Pop parameters\n\ yann@1: + addq.l #8, %sp\n\ yann@1: + | Call real function.\n\ yann@1: + jmp (%d0)\n\ yann@1: .size " #tramp_name ", . - " #tramp_name "\n" yann@1: #ifndef PROF yann@1: #define ELF_MACHINE_RUNTIME_TRAMPOLINE \ yann@1: @@ -143,50 +143,50 @@ yann@1: its return value is the user program's entry point. */ yann@1: yann@1: #define RTLD_START asm ("\ yann@1: - .text yann@1: - .globl _start yann@1: - .type _start,@function yann@1: -_start: yann@1: - move.l %sp, -(%sp) yann@1: - jbsr _dl_start yann@1: - addq.l #4, %sp yann@1: - /* FALLTHRU */ yann@1: - yann@1: - .globl _dl_start_user yann@1: - .type _dl_start_user,@function yann@1: -_dl_start_user: yann@1: - | Save the user entry point address in %a4. yann@1: - move.l %d0, %a4 yann@1: - | Point %a5 at the GOT. yann@1: - lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5 yann@1: - | Remember the highest stack address. yann@1: - move.l %sp, ([__libc_stack_end@GOT.w, %a5]) yann@1: - | See if we were run as a command with the executable file yann@1: - | name as an extra leading argument. yann@1: - move.l ([_dl_skip_args@GOT.w, %a5]), %d0 yann@1: - | Pop the original argument count yann@1: - move.l (%sp)+, %d1 yann@1: - | Subtract _dl_skip_args from it. yann@1: - sub.l %d0, %d1 yann@1: - | Adjust the stack pointer to skip _dl_skip_args words. yann@1: - lea (%sp, %d0*4), %sp yann@1: - | Push back the modified argument count. yann@1: - move.l %d1, -(%sp) yann@1: - # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env) yann@1: - pea 8(%sp, %d1*4) yann@1: - pea 8(%sp) yann@1: - move.l %d1, -(%sp) yann@1: - move.l ([_dl_loaded@GOT.w, %a5]), -(%sp) yann@1: - jbsr _dl_init@PLTPC yann@1: - addq.l #8, %sp yann@1: - addq.l #8, %sp yann@1: - | Pass our finalizer function to the user in %a1. yann@1: - move.l _dl_fini@GOT.w(%a5), %a1 yann@1: - | Initialize %fp with the stack pointer. yann@1: - move.l %sp, %fp yann@1: - | Jump to the user's entry point. yann@1: - jmp (%a4) yann@1: - .size _dl_start_user, . - _dl_start_user yann@1: + .text\n\ yann@1: + .globl _start\n\ yann@1: + .type _start,@function\n\ yann@1: +_start:\n\ yann@1: + move.l %sp, -(%sp)\n\ yann@1: + jbsr _dl_start\n\ yann@1: + addq.l #4, %sp\n\ yann@1: + /* FALLTHRU */\n\ yann@1: +\n\ yann@1: + .globl _dl_start_user\n\ yann@1: + .type _dl_start_user,@function\n\ yann@1: +_dl_start_user:\n\ yann@1: + | Save the user entry point address in %a4.\n\ yann@1: + move.l %d0, %a4\n\ yann@1: + | Point %a5 at the GOT.\n\ yann@1: + lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5\n\ yann@1: + | Remember the highest stack address.\n\ yann@1: + move.l %sp, ([__libc_stack_end@GOT.w, %a5])\n\ yann@1: + | See if we were run as a command with the executable file\n\ yann@1: + | name as an extra leading argument.\n\ yann@1: + move.l ([_dl_skip_args@GOT.w, %a5]), %d0\n\ yann@1: + | Pop the original argument count\n\ yann@1: + move.l (%sp)+, %d1\n\ yann@1: + | Subtract _dl_skip_args from it.\n\ yann@1: + sub.l %d0, %d1\n\ yann@1: + | Adjust the stack pointer to skip _dl_skip_args words.\n\ yann@1: + lea (%sp, %d0*4), %sp\n\ yann@1: + | Push back the modified argument count.\n\ yann@1: + move.l %d1, -(%sp)\n\ yann@1: + # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\ yann@1: + pea 8(%sp, %d1*4)\n\ yann@1: + pea 8(%sp)\n\ yann@1: + move.l %d1, -(%sp)\n\ yann@1: + move.l ([_rtld_global@GOT.w, %a5]), -(%sp)\n\ yann@1: + jbsr _dl_init@PLTPC\n\ yann@1: + addq.l #8, %sp\n\ yann@1: + addq.l #8, %sp\n\ yann@1: + | Pass our finalizer function to the user in %a1.\n\ yann@1: + move.l _dl_fini@GOT.w(%a5), %a1\n\ yann@1: + | Initialize %fp with the stack pointer.\n\ yann@1: + move.l %sp, %fp\n\ yann@1: + | Jump to the user's entry point.\n\ yann@1: + jmp (%a4)\n\ yann@1: + .size _dl_start_user, . - _dl_start_user\n\ yann@1: .previous"); yann@1: yann@1: /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so yann@1: @@ -251,7 +251,7 @@ yann@1: found. */ yann@1: break; yann@1: if (sym->st_size > refsym->st_size yann@1: - || (sym->st_size < refsym->st_size && _dl_verbose)) yann@1: + || (sym->st_size < refsym->st_size && GL(dl_verbose))) yann@1: { yann@1: extern char **_dl_argv; yann@1: const char *strtab;