diff options
| author | itohy <itohy@NetBSD.org> | 1999-01-05 10:02:20 +0000 |
|---|---|---|
| committer | itohy <itohy@NetBSD.org> | 1999-01-05 10:02:20 +0000 |
| commit | 85da239ef8ed87de75fa466e694b13bbd4c9639a (patch) | |
| tree | 31f33b3e1d510a880867c876013ab0e9a3d9d2e1 /gnu/usr.bin/ld | |
| parent | 56d26266a5e6adf28141dc6e39c329157d14895d (diff) | |
Fix byte order swapping for cross linker.
Diffstat (limited to 'gnu/usr.bin/ld')
| -rw-r--r-- | gnu/usr.bin/ld/ld/rrs.c | 4 | ||||
| -rw-r--r-- | gnu/usr.bin/ld/ld/xbits.c | 19 |
2 files changed, 8 insertions, 15 deletions
diff --git a/gnu/usr.bin/ld/ld/rrs.c b/gnu/usr.bin/ld/ld/rrs.c index 51270810350..2089aa6e17d 100644 --- a/gnu/usr.bin/ld/ld/rrs.c +++ b/gnu/usr.bin/ld/ld/rrs.c @@ -1,4 +1,4 @@ -/* $NetBSD: rrs.c,v 1.27 1998/12/17 14:34:51 pk Exp $ */ +/* $NetBSD: rrs.c,v 1.28 1999/01/05 10:02:20 itohy Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -1189,7 +1189,7 @@ write_rrs_text() /* Write the symbol table */ if (rrs_symbol_size == sizeof(struct nlist)) - md_swapout_symbols(rrs_symbols, number_of_rrs_symbols); + md_swapout_symbols((struct nlist *) rrs_symbols, number_of_rrs_symbols); else md_swapout_zsymbols(rrs_symbols, number_of_rrs_symbols); mywrite(rrs_symbols, symsize, 1, outstream); diff --git a/gnu/usr.bin/ld/ld/xbits.c b/gnu/usr.bin/ld/ld/xbits.c index 7cea2fbc6ed..ca824408351 100644 --- a/gnu/usr.bin/ld/ld/xbits.c +++ b/gnu/usr.bin/ld/ld/xbits.c @@ -1,4 +1,4 @@ -/* $NetBSD: xbits.c,v 1.7 1998/12/17 14:34:52 pk Exp $ */ +/* $NetBSD: xbits.c,v 1.8 1999/01/05 10:02:21 itohy Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -133,8 +133,10 @@ swapin_sod(sodp, n) sodp->sod_major = md_swap_short(sodp->sod_major); sodp->sod_minor = md_swap_short(sodp->sod_minor); sodp->sod_next = md_swap_long(sodp->sod_next); - bits = ((unsigned long *)sodp)[1]; - sodp->sod_library = ((bits >> 24) & 1); + /* swap sod_library flag */ + bits = ((unsigned char *)sodp)[4]; + ((u_int *)sodp)[1] = 0; /* clear reserved bits */ + ((unsigned char *)sodp)[4] = ((bits & 1) << 7) | (bits>>7 & 1); } } @@ -143,16 +145,7 @@ swapout_sod(sodp, n) struct sod *sodp; int n; { - unsigned long bits; - - for (; n; n--, sodp++) { - sodp->sod_name = md_swap_long(sodp->sod_name); - sodp->sod_major = md_swap_short(sodp->sod_major); - sodp->sod_minor = md_swap_short(sodp->sod_minor); - sodp->sod_next = md_swap_long(sodp->sod_next); - bits = (unsigned long)(sodp->sod_library) << 24; - ((unsigned long *)sodp)[1] = bits; - } + swapin_sod(sodp, n); } void |
