From f95be941dec41c803891857a8ad240da5200dcb2 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Tue, 3 Jul 2001 18:24:05 +0000 Subject: Merge arm support into the mainstream. This change is pretty minor, just carefully memset 0 strings before using them, and also referencs strings via the GOT for ARM as well. -Erik --- ldso/ldso/hash.h | 21 +++++++++++++-------- ldso/ldso/ld_hash.h | 21 +++++++++++++-------- 2 files changed, 26 insertions(+), 16 deletions(-) (limited to 'ldso') diff --git a/ldso/ldso/hash.h b/ldso/ldso/hash.h index c7fee6c97..f38361090 100644 --- a/ldso/ldso/hash.h +++ b/ldso/ldso/hash.h @@ -71,8 +71,8 @@ extern char * _dl_find_hash(char * name, struct dyn_elf * rpnt1, int copyrel); extern int _dl_linux_dynamic_link(void); -#ifdef __mc68000__ -/* On m68k constant strings are referenced through the GOT. */ +#if defined mc68000 || defined __arm__ +/* On some arches constant strings are referenced through the GOT. */ /* XXX Requires load_addr to be defined. */ #define SEND_STDERR(X) \ { const char *__s = (X); \ @@ -84,22 +84,27 @@ extern int _dl_linux_dynamic_link(void); #endif #define SEND_ADDRESS_STDERR(X, add_a_newline) { \ - char tmp[13]; \ - _dl_write(2, _dl_simple_ltoahex_inline( tmp, (unsigned long)(X)), 12); \ + char tmp[13], *tmp1; \ + _dl_memset_inline(tmp, 0, sizeof(tmp)); \ + tmp1=_dl_simple_ltoahex( tmp, (unsigned long)(X)); \ + _dl_write(2, tmp1, _dl_strlen_inline(tmp1)); \ if (add_a_newline) { \ tmp[0]='\n'; \ _dl_write(2, tmp, 1); \ } \ -}; +}; #define SEND_NUMBER_STDERR(X, add_a_newline) { \ - char tmp[13]; \ - _dl_write(2, (void *)_dl_simple_ltoahex_inline( tmp, (unsigned long)(X)), 12); \ + char tmp[13], *tmp1; \ + _dl_memset_inline(tmp, 0, sizeof(tmp)); \ + tmp1=_dl_simple_ltoahex( tmp, (unsigned long)(X)); \ + _dl_write(2, tmp1, _dl_strlen_inline(tmp1)); \ if (add_a_newline) { \ tmp[0]='\n'; \ _dl_write(2, tmp, 1); \ } \ -}; +}; + extern int _dl_fdprintf(int, const char *, ...); extern char * _dl_library_path; extern char * _dl_not_lazy; diff --git a/ldso/ldso/ld_hash.h b/ldso/ldso/ld_hash.h index c7fee6c97..f38361090 100644 --- a/ldso/ldso/ld_hash.h +++ b/ldso/ldso/ld_hash.h @@ -71,8 +71,8 @@ extern char * _dl_find_hash(char * name, struct dyn_elf * rpnt1, int copyrel); extern int _dl_linux_dynamic_link(void); -#ifdef __mc68000__ -/* On m68k constant strings are referenced through the GOT. */ +#if defined mc68000 || defined __arm__ +/* On some arches constant strings are referenced through the GOT. */ /* XXX Requires load_addr to be defined. */ #define SEND_STDERR(X) \ { const char *__s = (X); \ @@ -84,22 +84,27 @@ extern int _dl_linux_dynamic_link(void); #endif #define SEND_ADDRESS_STDERR(X, add_a_newline) { \ - char tmp[13]; \ - _dl_write(2, _dl_simple_ltoahex_inline( tmp, (unsigned long)(X)), 12); \ + char tmp[13], *tmp1; \ + _dl_memset_inline(tmp, 0, sizeof(tmp)); \ + tmp1=_dl_simple_ltoahex( tmp, (unsigned long)(X)); \ + _dl_write(2, tmp1, _dl_strlen_inline(tmp1)); \ if (add_a_newline) { \ tmp[0]='\n'; \ _dl_write(2, tmp, 1); \ } \ -}; +}; #define SEND_NUMBER_STDERR(X, add_a_newline) { \ - char tmp[13]; \ - _dl_write(2, (void *)_dl_simple_ltoahex_inline( tmp, (unsigned long)(X)), 12); \ + char tmp[13], *tmp1; \ + _dl_memset_inline(tmp, 0, sizeof(tmp)); \ + tmp1=_dl_simple_ltoahex( tmp, (unsigned long)(X)); \ + _dl_write(2, tmp1, _dl_strlen_inline(tmp1)); \ if (add_a_newline) { \ tmp[0]='\n'; \ _dl_write(2, tmp, 1); \ } \ -}; +}; + extern int _dl_fdprintf(int, const char *, ...); extern char * _dl_library_path; extern char * _dl_not_lazy; -- cgit v1.2.3