summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorkristerw <kristerw@NetBSD.org>2000-05-20 20:04:12 +0000
committerkristerw <kristerw@NetBSD.org>2000-05-20 20:04:12 +0000
commit9eccb6b54e43167e7e35fffdc4e4479c60d20f3a (patch)
treef5491756f64f6639a82a82d6dd1c88509ee77676 /gnu
parent1410091b4e80a36069ca2dcd9e32eef511dfaee6 (diff)
This file will contain the MI part of netbsd a.out shared lib support.
For now it is just the hooks needed for ld.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/dist/bfd/netbsdaout.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/gnu/dist/bfd/netbsdaout.c b/gnu/dist/bfd/netbsdaout.c
new file mode 100644
index 00000000000..9d7a8e4bb79
--- /dev/null
+++ b/gnu/dist/bfd/netbsdaout.c
@@ -0,0 +1,59 @@
+#include "bfd.h"
+#include "sysdep.h"
+#include "libaout.h"
+
+/* Return the list of objects needed by BFD. */
+
+/*ARGSUSED*/
+struct bfd_link_needed_list *
+bfd_netbsd_get_needed_list (abfd, info)
+ bfd *abfd;
+ struct bfd_link_info *info;
+{
+ if (aout_backend_info (abfd)->get_needed_list != NULL)
+ {
+ return (*aout_backend_info (abfd)->get_needed_list)
+ (abfd, info);
+ }
+
+ return NULL;
+}
+
+/* Record an assignment made to a symbol by a linker script. We need
+ this in case some dynamic object refers to this symbol. */
+
+boolean
+bfd_netbsd_record_link_assignment (output_bfd, info, name)
+ bfd *output_bfd;
+ struct bfd_link_info *info;
+ const char *name;
+{
+ if (aout_backend_info (output_bfd)->record_link_assignment != NULL)
+ {
+ return (*aout_backend_info (output_bfd)->record_link_assignment)
+ (output_bfd, info, name);
+ }
+
+ return true;
+}
+
+/* Set up the sizes and contents of the dynamic sections. This is called
+ by the NetBSD linker emulation before_allocation routine. */
+
+boolean
+bfd_netbsd_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr,
+ srulesptr)
+ bfd *output_bfd;
+ struct bfd_link_info *info;
+ asection **sdynptr;
+ asection **sneedptr;
+ asection **srulesptr;
+{
+ if (aout_backend_info (output_bfd)->size_dynamic_sections != NULL)
+ {
+ return (*aout_backend_info (output_bfd)->size_dynamic_sections)
+ (output_bfd, info, sdynptr, sneedptr, srulesptr);
+ }
+
+ return true;
+}