diff options
Diffstat (limited to 'libc/sysdeps/linux/common')
-rw-r--r-- | libc/sysdeps/linux/common/initfini.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/common/initfini.c b/libc/sysdeps/linux/common/initfini.c index 4a6ebee75..927ed1db3 100644 --- a/libc/sysdeps/linux/common/initfini.c +++ b/libc/sysdeps/linux/common/initfini.c @@ -109,6 +109,11 @@ void _init (void) asm ("ALIGN"); asm("END_INIT"); +#if defined(__sh__) + /* This is a horrible hack, but seems to be necessary to + * make this work for the Hitachi SH processors */ + asm ("\n.L5:\n\t.long _GLOBAL_OFFSET_TABLE_\n"); +#endif /* Now the epilog. */ asm ("\n/*@_init_PROLOG_ENDS*/"); asm ("\n/*@_init_EPILOG_BEGINS*/"); @@ -129,6 +134,11 @@ void _fini (void) /* End of the _fini prolog. */ asm ("ALIGN"); asm ("END_FINI"); +#if defined(__sh__) + /* This is a horrible hack, but seems to be necessary to + * make this work for the Hitachi SH processors */ + asm ("\n.L10:\n\t.long _GLOBAL_OFFSET_TABLE_\n"); +#endif asm ("\n/*@_fini_PROLOG_ENDS*/"); { |