/* Load a shared object at runtime, relocate it, and run its initializer.
- Copyright (C) 1996 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
between when _dl_object_relocation_scope returns and when we
enter the dynamic linker's code (_dl_relocate_object). */
__typeof (_dl_relocate_object) *reloc = &_dl_relocate_object;
+
+ /* GCC is very clever. If we wouldn't add some magic it would
+ simply optimize away our nice little variable `reloc' and we
+ would result in a not working binary. So let's swing the
+ magic ward. */
+ asm ("" : "=r" (reloc) : "0" (reloc));
+
(*reloc) (l, _dl_object_relocation_scope (l),
(mode & RTLD_BINDING_MASK) == RTLD_LAZY);
*_dl_global_scope_end = NULL;