[patch] darwin full x86_64 and i?86 libjava support
Andreas Tobler
andreast-list@fgznet.ch
Fri Dec 7 19:39:00 GMT 2007
Andrew Haley wrote:
> Andreas Tobler writes:
> >
> >
> > Thanks for review and feedback,
>
> Your formatting is FUBAR in a few places:
:(
> This is kinda horrible:
Tried to make it better, see below.
> > +#if defined (__LP64__)
> > + fde = getsectdatafromheader_64(
> > +#else
> > + fde = getsectdatafromheader(
> > +#endif
> > + mh, "__DATA", "jcr", &sz);
>
> Remember spaces between function names and arg lists.
Fixed.
> Otherwise OK.
Thanks!
Is the below a better approach? I'm not sure how much I can modify
existing code when it only belongs to formatting.
Andreas
Index: darwin.cc
===================================================================
--- darwin.cc (revision 130692)
+++ darwin.cc (working copy)
@@ -1,6 +1,6 @@
/* darwin.cc - class loader stuff for Darwin. */
-/* Copyright (C) 2004 Free Software Foundation
+/* Copyright (C) 2004, 2007 Free Software Foundation
This file is part of libgcj.
@@ -21,26 +21,44 @@
ourself. */
#include <stdint.h>
-struct mach_header;
-extern "C" void _dyld_register_func_for_add_image
- (void (*func)(const struct mach_header *mh, intptr_t vmaddr_slide));
-extern "C" void _dyld_register_func_for_remove_image
- (void (*func)(const struct mach_header *mh, intptr_t vmaddr_slide));
-extern "C" char *getsectdatafromheader
-(const struct mach_header *mhp, const char *segname, const char *sectname,
- uint32_t *size);
+#if !defined (__LP64__)
+ struct mach_header;
+# define JAVA_MACH_HEADER mach_header
+# define mh_size_t uint32_t
+ extern "C" void _dyld_register_func_for_add_image
+ (void (*func)(const struct mach_header *mh, intptr_t vmaddr_slide));
+ extern "C" void _dyld_register_func_for_remove_image
+ (void (*func)(const struct mach_header *mh, intptr_t vmaddr_slide));
+ extern "C" char *getsectdatafromheader
+ (const struct mach_header *mhp, const char *segname, const char
*sectname,
+ uint32_t *size);
+# define GETDATA getsectdatafromheader
+#else
+ struct mach_header_64;
+# define JAVA_MACH_HEADER mach_header_64
+# define mh_size_t uint64_t
+ extern "C" void _dyld_register_func_for_add_image
+ (void (*func)(const struct mach_header_64 *mh, intptr_t vmaddr_slide));
+ extern "C" void _dyld_register_func_for_remove_image
+ (void (*func)(const struct mach_header_64 *mh, intptr_t vmaddr_slide));
+ extern "C" char *getsectdatafromheader_64
+ (const struct mach_header_64 *mhp, const char *segname,
+ const char *sectname, uint64_t *size);
+# define GETDATA getsectdatafromheader_64
+#endif
/* When a new image is loaded, look to see if it has a jcr section
and if so register the classes listed in it. */
static void
-darwin_java_register_dyld_add_image_hook (const struct mach_header *mh,
+darwin_java_register_dyld_add_image_hook (const struct JAVA_MACH_HEADER
*mh,
intptr_t slide)
{
char *fde;
- uint32_t sz;
-
- fde = getsectdatafromheader (mh, "__DATA", "jcr", &sz);
+ mh_size_t sz;
+
+ fde = GETDATA (mh, "__DATA", "jcr", &sz);
+
if (! fde)
return;
More information about the Java-patches
mailing list