]> granicus.if.org Git - file/commitdiff
Centralized java and mach-o common; leave non-shared in each
authorIan Darwin <ian@darwinsys.com>
Thu, 1 Jun 2006 18:49:35 +0000 (18:49 +0000)
committerIan Darwin <ian@darwinsys.com>
Thu, 1 Jun 2006 18:49:35 +0000 (18:49 +0000)
magic/Magdir/cafebabe [new file with mode: 0644]
magic/Magdir/java
magic/Magdir/mach

diff --git a/magic/Magdir/cafebabe b/magic/Magdir/cafebabe
new file mode 100644 (file)
index 0000000..233411c
--- /dev/null
@@ -0,0 +1,21 @@
+#------------------------------------------------------------------------------
+# Cafe Babes unite!
+#
+# Since Java bytecode and Mach-O fat-files have the same magic number, the test
+# must be performed in the same "magic" sequence to get both right.  The long
+# at offset 4 in a mach-O fat file tells the number of architectures; the short at
+# offset 4 in a Java bytecode file is the JVM minor version and the
+# short at offset 6 is the JVM major version.  Since there are only 
+# only 18 labeled Mach-O architectures at current, and the first released 
+# Java class format was version 43.0, we can safely choose any number
+# between 18 and 39 to test the number of architectures against
+# (and use as a hack). Let's not use 18, because the Mach-O people
+# might add another one or two as time goes by...
+#
+0      belong          0xcafebabe
+>4     belong          >30             compiled Java class data,
+>>6     beshort                x               version %d.
+>>4     beshort                x               \b%d
+>4     belong          1               Mach-O fat file with 1 architecture
+>4     belong          >1
+>>4    belong          <20             Mach-O fat file with %ld architectures
index f9b70915f60d4e90022b09f1f46baa0b903add8b..7aa22a6adb43f4a6ab6c4388a5f6300d743770db 100644 (file)
@@ -1,10 +1,7 @@
 #------------------------------------------------------------
-# Java ByteCode
-# From Larry Schwimmer (schwim@cs.stanford.edu)
-# Handled in Mach now
-#0     belong          0xcafebabe      compiled Java class data,
-#>6    beshort x       version %d.
-#>4    beshort x       \b%d
+# Java ByteCode and Mach-O binaries (e.g., Mac OS X) use the
+# same magic number, 0xcafebabe, so they are both handled
+# in the entry called "cafebabe".
 #------------------------------------------------------------
 # Java serialization
 # From Martin Pool (m.pool@pharos.com.au)
index 6289a2da8a8b735c937147dfd0e7628b5a293edb..cced3a5873238efd1329be49c847d7dd33620e35 100644 (file)
@@ -1,26 +1,9 @@
-#------------------------------------------------------------------------------
-# mach file description
-#
-# Since Java bytecode and Mach-O fat-files have the same magic number the test
-# must be preformed in the same "magic" sequence to get both right.  The long
-# at offset 4 in a fat file tells the number of architectures.  The short at
-# offset 4 in a Java bytecode file is the compiler minor version and the
-# short at offset 6 is the compiler major version.  Since there are only 
-# only 18 labeled Mach-O architectures at current, and the first released 
-# Java class format was version 43.0, we can safely choose any number
-# between 18 and 39 to test the number of architectures against
-# (and use as a hack).
-#
-0      belong          0xcafebabe
->4     belong          >19             compiled Java class data,
->>6     beshort                x               version %d.
->>4     beshort                x               \b%d
->4     belong          1               Mach-O fat file with 1 architecture
->4     belong          >1
-# The following is necessary to support java class files.
->>4    belong          <20             Mach-O fat file with %ld architectures
-#>>4   belong          <0xffff         Mach-O fat file with %ld architectures
-#
+#------------------------------------------------------------
+# Mach has two magic numbers, 0xcafebabe and 0xfeedface.
+# Unfortunately the first, cafebabe, is shared with
+# Java ByteCode, so they are both handled in the file "cafebabe".
+# The "feedface" ones are handled herein.
+#------------------------------------------------------------
 0      lelong&0xfeffffff       0xfeedface      Mach-O
 >0     byte            0xcf            64-bit
 >12    lelong          1               object