summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith <keith@Voyager.local>2008-09-08 19:48:55 -0500
committerKeith <keith@Voyager.local>2008-09-08 19:48:55 -0500
commit6a5bcc5cd981e1a15073b89d842b20e6127e6cd5 (patch)
treeb5ddd538872b7e8e6ec7ec4b61157e0cebf9dc14
parentdce2209cac70932cb082c8171aac6f2ab74a1bb6 (diff)
downloadnasm-6a5bcc5cd981e1a15073b89d842b20e6127e6cd5.tar.gz
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) modified: Makefile.in modified: Mkfiles/msvc.mak modified: Mkfiles/netware.mak modified: Mkfiles/openwcom.mak modified: Mkfiles/owlinux.mak modified: outform.h modified: output/outmacho.mac modified: output/outmacho32.c
-rw-r--r--Makefile.in16
-rw-r--r--Mkfiles/msvc.mak7
-rw-r--r--Mkfiles/netware.mak12
-rw-r--r--Mkfiles/openwcom.mak7
-rw-r--r--Mkfiles/owlinux.mak7
-rw-r--r--outform.h31
-rw-r--r--output/outmacho.mac4
-rw-r--r--output/outmacho32.c26
8 files changed, 77 insertions, 33 deletions
diff --git a/Makefile.in b/Makefile.in
index 3167f3ff..e10daf7a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -66,7 +66,8 @@ NASM = nasm.$(O) nasmlib.$(O) raa.$(O) saa.$(O) \
output/outaout.$(O) output/outcoff.$(O) \
output/outelf32.$(O) output/outelf64.$(O) \
output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
- output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
+ output/outdbg.$(O) output/outieee.$(O) \
+ output/outmacho32.$(O) output/outmacho64.$(O) \
preproc.$(O) quote.$(O) pptok.$(O) macros.$(O) \
listing.$(O) eval.$(O) exprlib.$(O) stdscan.$(O) strfunc.$(O) \
tokhash.$(O) regvals.$(O) regflags.$(O)
@@ -104,12 +105,12 @@ insnsn.c: insns.dat insns.pl
# the version number.
version.h: version version.pl
$(PERL) $(srcdir)/version.pl h < $(srcdir)/version > version.h
+
version.mac: version version.pl
$(PERL) $(srcdir)/version.pl mac < $(srcdir)/version > version.mac
+
version.sed: version version.pl
$(PERL) $(srcdir)/version.pl sed < $(srcdir)/version > version.sed
-version.mak: version version.pl
- $(PERL) $(srcdir)/version.pl make < $(srcdir)/version > version.mak
# This source file is generated from the standard macros file
# `standard.mac' by another Perl script. Again, it's part of the
@@ -157,7 +158,7 @@ pptok.ph: pptok.dat pptok.pl perllib/phash.ph
PERLREQ = macros.c insnsb.c insnsa.c insnsd.c insnsi.h insnsn.c \
regs.c regs.h regflags.c regdis.c regdis.h regvals.c \
tokhash.c tokens.h pptok.h pptok.c pptok.ph \
- version.h version.mac version.mak
+ version.h version.mac
perlreq: $(PERLREQ)
install: nasm$(X) ndisasm$(X)
@@ -224,9 +225,6 @@ nasm.spec: nasm.spec.in version.sed
splint:
splint -weak *.c
-test: nasm$(X)
- cd test && $(PERL) performtest.pl --nasm=../nasm *.asm
-
#
# This build dependencies in *ALL* makefiles. Partially for that reason,
# it's expected to be invoked manually.
@@ -299,7 +297,9 @@ output/outelf64.$(O): output/outelf64.c compiler.h config.h insnsi.h nasm.h \
version.h
output/outieee.$(O): output/outieee.c compiler.h config.h insnsi.h nasm.h \
nasmlib.h outform.h pptok.h preproc.h regs.h version.h
-output/outmacho.$(O): output/outmacho.c compiler.h config.h insnsi.h nasm.h \
+output/outmacho32.$(O): output/outmacho32.c compiler.h config.h insnsi.h nasm.h \
+ nasmlib.h outform.h pptok.h preproc.h raa.h regs.h saa.h version.h
+output/outmacho64.$(O): output/outmacho64.c compiler.h config.h insnsi.h nasm.h \
nasmlib.h outform.h pptok.h preproc.h raa.h regs.h saa.h version.h
output/outobj.$(O): output/outobj.c compiler.h config.h insnsi.h nasm.h \
nasmlib.h outform.h pptok.h preproc.h regs.h stdscan.h version.h
diff --git a/Mkfiles/msvc.mak b/Mkfiles/msvc.mak
index 0ec7e936..8d36fa3c 100644
--- a/Mkfiles/msvc.mak
+++ b/Mkfiles/msvc.mak
@@ -41,7 +41,8 @@ NASM = nasm.$(O) nasmlib.$(O) raa.$(O) saa.$(O) \
output/outaout.$(O) output/outcoff.$(O) \
output/outelf32.$(O) output/outelf64.$(O) \
output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
- output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
+ output/outdbg.$(O) output/outieee.$(O) \
+ output/outmacho32.$(O) output/outmacho64.$(O) \
preproc.$(O) quote.$(O) pptok.$(O) macros.$(O) \
listing.$(O) eval.$(O) exprlib.$(O) stdscan.$(O) strfunc.$(O) \
tokhash.$(O) regvals.$(O) regflags.$(O)
@@ -234,7 +235,9 @@ output/outelf64.$(O): output/outelf64.c compiler.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h raa.h regs.h saa.h stdscan.h version.h
output/outieee.$(O): output/outieee.c compiler.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h regs.h version.h
-output/outmacho.$(O): output/outmacho.c compiler.h insnsi.h nasm.h nasmlib.h \
+output/outmacho32.$(O): output/outmacho32.c compiler.h insnsi.h nasm.h nasmlib.h \
+ outform.h pptok.h preproc.h raa.h regs.h saa.h version.h
+output/outmacho64.$(O): output/outmacho64.c compiler.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h raa.h regs.h saa.h version.h
output/outobj.$(O): output/outobj.c compiler.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h regs.h stdscan.h version.h
diff --git a/Mkfiles/netware.mak b/Mkfiles/netware.mak
index 672221cf..8c37b8c2 100644
--- a/Mkfiles/netware.mak
+++ b/Mkfiles/netware.mak
@@ -3,7 +3,7 @@
PROOT=.
OBJDIR=release
--include $(OBJDIR)/version.mak
+-include $(OBJDIR)/version.inc
TARGETS=nasm.nlm ndisasm.nlm
@@ -37,7 +37,8 @@ NASM = nasm.o nasmlib.o raa.o saa.o \
outaout.o outcoff.o \
outelf32.o outelf64.o \
outobj.o outas86.o outrdf2.o \
- outdbg.o outieee.o outmacho.o \
+ outdbg.o outieee.o \
+ outmacho32.o outmacho64.o \
preproc.o quote.o pptok.o macros.o \
listing.o eval.o exprlib.o stdscan.o strfunc.o \
tokhash.o regvals.o regflags.o
@@ -113,7 +114,7 @@ clean:
distclean: clean
-$(RM) $(TARGETS)
-$(OBJDIR)/version.mak: $(PROOT)/version $(PROOT)/version.pl $(OBJDIR)
+$(OBJDIR)/version.inc: $(PROOT)/version $(PROOT)/version.pl $(OBJDIR)
@$(PERL) $(PROOT)/version.pl make < $< > $@
#-- Magic hints to mkdep.pl --#
@@ -174,9 +175,10 @@ outelf64.o: outelf64.c compiler.h config.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h raa.h regs.h saa.h stdscan.h version.h
outieee.o: outieee.c compiler.h config.h insnsi.h nasm.h nasmlib.h outform.h \
pptok.h preproc.h regs.h version.h
-outmacho.o: outmacho.c compiler.h config.h insnsi.h nasm.h nasmlib.h \
+outmacho32.o: outmacho32.c compiler.h config.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h raa.h regs.h saa.h version.h
-outobj.o: outobj.c compiler.h config.h insnsi.h nasm.h nasmlib.h outform.h \
+outmacho64.o: outmacho64.c compiler.h config.h insnsi.h nasm.h nasmlib.h \
+ outform.h pptok.h preproc.h raa.h regs.h saa.h version.houtobj.o: outobj.c compiler.h config.h insnsi.h nasm.h nasmlib.h outform.h \
pptok.h preproc.h regs.h stdscan.h version.h
outrdf.o: outrdf.c compiler.h config.h insnsi.h nasm.h nasmlib.h outform.h \
pptok.h preproc.h regs.h version.h
diff --git a/Mkfiles/openwcom.mak b/Mkfiles/openwcom.mak
index 6ef4c4da..d13007bc 100644
--- a/Mkfiles/openwcom.mak
+++ b/Mkfiles/openwcom.mak
@@ -53,7 +53,8 @@ NASM = nasm.$(O) nasmlib.$(O) raa.$(O) saa.$(O) &
output\outaout.$(O) output\outcoff.$(O) &
output\outelf32.$(O) output\outelf64.$(O) &
output\outobj.$(O) output\outas86.$(O) output\outrdf2.$(O) &
- output\outdbg.$(O) output\outieee.$(O) output\outmacho.$(O) &
+ output\outdbg.$(O) output\outieee.$(O) &
+ output\outmacho32.$(O) output\outmacho64.$(O) &
preproc.$(O) quote.$(O) pptok.$(O) macros.$(O) &
listing.$(O) eval.$(O) exprlib.$(O) stdscan.$(O) strfunc.$(O) &
tokhash.$(O) regvals.$(O) regflags.$(O)
@@ -263,7 +264,9 @@ output\outelf64.$(O): output\outelf64.c compiler.h insnsi.h nasm.h nasmlib.h &
outform.h pptok.h preproc.h raa.h regs.h saa.h stdscan.h version.h
output\outieee.$(O): output\outieee.c compiler.h insnsi.h nasm.h nasmlib.h &
outform.h pptok.h preproc.h regs.h version.h
-output\outmacho.$(O): output\outmacho.c compiler.h insnsi.h nasm.h nasmlib.h &
+output\outmacho32.$(O): output\outmacho32.c compiler.h insnsi.h nasm.h nasmlib.h &
+ outform.h pptok.h preproc.h raa.h regs.h saa.h version.h
+output\outmacho64.$(O): output\outmacho64.c compiler.h insnsi.h nasm.h nasmlib.h &
outform.h pptok.h preproc.h raa.h regs.h saa.h version.h
output\outobj.$(O): output\outobj.c compiler.h insnsi.h nasm.h nasmlib.h &
outform.h pptok.h preproc.h regs.h stdscan.h version.h
diff --git a/Mkfiles/owlinux.mak b/Mkfiles/owlinux.mak
index acdfa78a..032d05d9 100644
--- a/Mkfiles/owlinux.mak
+++ b/Mkfiles/owlinux.mak
@@ -64,7 +64,8 @@ NASM = nasm.$(O) nasmlib.$(O) raa.$(O) saa.$(O) \
output/outaout.$(O) output/outcoff.$(O) \
output/outelf32.$(O) output/outelf64.$(O) \
output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
- output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
+ output/outdbg.$(O) output/outieee.$(O) \
+ output/outmacho32.$(O) output/outmacho64.$(O) \
preproc.$(O) quote.$(O) pptok.$(O) macros.$(O) \
listing.$(O) eval.$(O) exprlib.$(O) stdscan.$(O) strfunc.$(O) \
tokhash.$(O) regvals.$(O) regflags.$(O)
@@ -273,7 +274,9 @@ output/outelf64.$(O): output/outelf64.c compiler.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h raa.h regs.h saa.h stdscan.h version.h
output/outieee.$(O): output/outieee.c compiler.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h regs.h version.h
-output/outmacho.$(O): output/outmacho.c compiler.h insnsi.h nasm.h nasmlib.h \
+output/outmacho32.$(O): output/outmacho32.c compiler.h insnsi.h nasm.h nasmlib.h \
+ outform.h pptok.h preproc.h raa.h regs.h saa.h version.h
+output/outmacho64.$(O): output/outmacho64.c compiler.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h raa.h regs.h saa.h version.h
output/outobj.$(O): output/outobj.c compiler.h insnsi.h nasm.h nasmlib.h \
outform.h pptok.h preproc.h regs.h stdscan.h version.h
diff --git a/outform.h b/outform.h
index 6d535929..585ad4e4 100644
--- a/outform.h
+++ b/outform.h
@@ -57,7 +57,7 @@
/* ====configurable info begins here==== */
/* formats configurable:
- * bin,obj,elf32,elf64,aout,aoutb,coff,win32,as86,rdf2,macho */
+ * bin,obj,elf32,elf64,aout,aoutb,coff,win32,as86,rdf2,macho32,macho64 */
/* process options... */
@@ -104,8 +104,11 @@
#ifndef OF_IEEE
#define OF_IEEE
#endif
-#ifndef OF_MACHO
-#define OF_MACHO
+#ifndef OF_MACHO32
+#define OF_MACHO32
+#endif
+#ifndef OF_MACHO64
+#define OF_MACHO64
#endif
#endif /* OF_ALL */
@@ -159,8 +162,11 @@
#ifndef OF_IEEE
#define OF_IEEE
#endif
-#ifndef OF_MACHO
-#define OF_MACHO
+#ifndef OF_MACHO32
+#define OF_MACHO32
+#endif
+#ifndef OF_MACHO64
+#define OF_MACHO64
#endif
#endif
@@ -201,8 +207,11 @@
#ifdef OF_NO_IEEE
#undef OF_IEEE
#endif
-#ifdef OF_NO_MACHO
-#undef OF_MACHO
+#ifdef OF_NO_MACHO32
+#undef OF_MACHO32
+#endif
+#ifdef OF_NO_MACHO64
+#undef OF_MACHO64
#endif
#ifndef OF_DEFAULT
@@ -227,7 +236,9 @@ extern struct ofmt of_win32;
extern struct ofmt of_win64;
extern struct ofmt of_rdf2;
extern struct ofmt of_ieee;
+extern struct ofmt of_macho32;
extern struct ofmt of_macho;
+extern struct ofmt of_macho64;
extern struct ofmt of_dbg;
struct ofmt *drivers[] = {
@@ -268,9 +279,13 @@ struct ofmt *drivers[] = {
#ifdef OF_IEEE
&of_ieee,
#endif
-#ifdef OF_MACHO
+#ifdef OF_MACHO32
+ &of_macho32,
&of_macho,
#endif
+#ifdef OF_MACHO64
+ &of_macho64,
+#endif
#ifdef OF_DBG
&of_dbg,
#endif
diff --git a/output/outmacho.mac b/output/outmacho.mac
index c135bf43..bef343d2 100644
--- a/output/outmacho.mac
+++ b/output/outmacho.mac
@@ -1,4 +1,4 @@
-OUT: macho win32 win64
+OUT: macho macho32 macho64 win32 win64
%define __SECT__ [section .text]
%macro __NASM_CDecl__ 1
-%endmacro
+%endmacro \ No newline at end of file
diff --git a/output/outmacho32.c b/output/outmacho32.c
index 5e9ad8e1..a3b01315 100644
--- a/output/outmacho32.c
+++ b/output/outmacho32.c
@@ -1,5 +1,5 @@
-/* outmacho.c output routines for the Netwide Assembler to produce
- * NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X object files
+/* outmacho32.c output routines for the Netwide Assembler to produce
+ * NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (i386) object files
*
* The Netwide Assembler is copyright (C) 1996 Simon Tatham and
* Julian Hall. All rights reserved. The software is
@@ -25,7 +25,7 @@
#include "outform.h"
#include "compiler.h"
-#if defined(OF_MACHO)
+#if defined(OF_MACHO32)
/* Mach-O in-file header structure sizes */
#define MACHO_HEADER_SIZE (28)
@@ -1306,8 +1306,26 @@ static void debug_section_relocs (struct section *s)
}
}
+struct ofmt of_macho32 = {
+ "NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (i386) object files",
+ "macho32",
+ NULL,
+ null_debug_arr,
+ &null_debug_form,
+ macho_stdmac,
+ macho_init,
+ macho_setinfo,
+ macho_output,
+ macho_symdef,
+ macho_section,
+ macho_segbase,
+ macho_directive,
+ macho_filename,
+ macho_cleanup
+};
+
struct ofmt of_macho = {
- "NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X object files",
+ "MACHO (short name for MACHO32)",
"macho",
NULL,
null_debug_arr,