1 |
/* BFD back-end for Apple M68K COFF A/UX 3.x files. |
/* BFD back-end for Apple M68K COFF A/UX 3.x files. |
2 |
Copyright 1996, 1997, 2000 Free Software Foundation, Inc. |
Copyright 1996, 1997, 2000, 2002 Free Software Foundation, Inc. |
3 |
Written by Richard Henderson <rth@tamu.edu>. |
Written by Richard Henderson <rth@tamu.edu>. |
4 |
|
|
5 |
This file is part of BFD, the Binary File Descriptor library. |
This file is part of BFD, the Binary File Descriptor library. |
40 |
#include "bfd.h" |
#include "bfd.h" |
41 |
#include "sysdep.h" |
#include "sysdep.h" |
42 |
|
|
43 |
static boolean coff_m68k_aux_link_add_one_symbol |
static bfd_boolean coff_m68k_aux_link_add_one_symbol |
44 |
PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, |
PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, |
45 |
asection *, bfd_vma, const char *, boolean, boolean, |
asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, |
46 |
struct bfd_link_hash_entry **)); |
struct bfd_link_hash_entry **)); |
47 |
|
|
48 |
#define coff_link_add_one_symbol coff_m68k_aux_link_add_one_symbol |
#define coff_link_add_one_symbol coff_m68k_aux_link_add_one_symbol |
56 |
shared libraries work here, but can work if you are careful with |
shared libraries work here, but can work if you are careful with |
57 |
what you include in the shared object. */ |
what you include in the shared object. */ |
58 |
|
|
59 |
static boolean |
static bfd_boolean |
60 |
coff_m68k_aux_link_add_one_symbol (info, abfd, name, flags, section, value, |
coff_m68k_aux_link_add_one_symbol (info, abfd, name, flags, section, value, |
61 |
string, copy, collect, hashp) |
string, copy, collect, hashp) |
62 |
struct bfd_link_info *info; |
struct bfd_link_info *info; |
66 |
asection *section; |
asection *section; |
67 |
bfd_vma value; |
bfd_vma value; |
68 |
const char *string; |
const char *string; |
69 |
boolean copy; |
bfd_boolean copy; |
70 |
boolean collect; |
bfd_boolean collect; |
71 |
struct bfd_link_hash_entry **hashp; |
struct bfd_link_hash_entry **hashp; |
72 |
{ |
{ |
73 |
struct bfd_link_hash_entry *h; |
struct bfd_link_hash_entry *h; |
86 |
} |
} |
87 |
else |
else |
88 |
{ |
{ |
89 |
h = bfd_link_hash_lookup (info->hash, name, true, copy, false); |
h = bfd_link_hash_lookup (info->hash, name, TRUE, copy, FALSE); |
90 |
if (h == NULL) |
if (h == NULL) |
91 |
{ |
{ |
92 |
if (hashp != NULL) |
if (hashp != NULL) |
93 |
*hashp = NULL; |
*hashp = NULL; |
94 |
return false; |
return FALSE; |
95 |
} |
} |
96 |
} |
} |
97 |
|
|
98 |
if (info->notice_hash != (struct bfd_hash_table *) NULL |
if (info->notice_hash != (struct bfd_hash_table *) NULL |
99 |
&& (bfd_hash_lookup (info->notice_hash, name, false, false) |
&& (bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) |
100 |
!= (struct bfd_hash_entry *) NULL)) |
!= (struct bfd_hash_entry *) NULL)) |
101 |
{ |
{ |
102 |
if (! (*info->callbacks->notice) (info, name, abfd, section, value)) |
if (! (*info->callbacks->notice) (info, name, abfd, section, value)) |
103 |
return false; |
return FALSE; |
104 |
} |
} |
105 |
|
|
106 |
if (hashp != (struct bfd_link_hash_entry **) NULL) |
if (hashp != (struct bfd_link_hash_entry **) NULL) |
121 |
{ |
{ |
122 |
h->u.def.section = section; |
h->u.def.section = section; |
123 |
h->u.def.value = value; |
h->u.def.value = value; |
124 |
return true; |
return TRUE; |
125 |
} |
} |
126 |
else if (bfd_is_abs_section (section) && !bfd_is_abs_section (msec)) |
else if (bfd_is_abs_section (section) && !bfd_is_abs_section (msec)) |
127 |
return true; |
return TRUE; |
128 |
} |
} |
129 |
} |
} |
130 |
|
|