+#else /* not SUNOS4_SHARED_LIBRARIES */
+ rel = erel = 0;
+#endif /* not SUNOS4_SHARED_LIBRARIES */
+#ifdef sparc
+#define REL_INFO_TYPE struct reloc_info_sparc
+#else
+#define REL_INFO_TYPE struct relocation_info
+#endif /* sparc */
+#define REL_TARGET_ADDRESS(r) (((REL_INFO_TYPE *)(r))->r_address)
+#endif /* SUNOS4 */
+#if defined (__FreeBSD__) || defined (__NetBSD__)
+ extern struct _dynamic _DYNAMIC;
+
+ /* FreeBSD's LD_REL is a virtual address itself. */
+ rel = LD_REL (&_DYNAMIC);
+ erel = rel + LD_RELSZ (&_DYNAMIC);
+#define REL_INFO_TYPE struct relocation_info
+#define REL_TARGET_ADDRESS(r) (((REL_INFO_TYPE *)(r))->r_address)
+#endif