Open
Description
Embedded platforms don't do static. However, if you're still curious here's how you can convince Xcode to make those files:
diff --git a/AsMain/main.s b/AsMain/main.s
index 953236a..61760cd 100644
--- a/AsMain/main.s
+++ b/AsMain/main.s
@@ -6,12 +6,11 @@
// X16 - Mach function number
//
-.global _main // Provide program starting address to linker
+.global start // Provide program starting address to linker
.align 2
-
// Setup the parameters to print hello world
// and then call Linux to do it.
-_main: mov X0, #1 // 1 = StdOut
+start: mov X0, #1 // 1 = StdOut
adr X1, helloworld // string to print
mov X2, #13 // length of our string
mov X16, #4 // linux write system call
diff --git a/MacAs.xcodeproj/project.pbxproj b/MacAs.xcodeproj/project.pbxproj
index 11b501e..f95d6bd 100644
--- a/MacAs.xcodeproj/project.pbxproj
+++ b/MacAs.xcodeproj/project.pbxproj
@@ -318,6 +318,8 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
+ LINK_WITH_STANDARD_LIBRARIES = NO;
+ OTHER_LDFLAGS = "-static";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
@@ -326,6 +328,8 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
+ LINK_WITH_STANDARD_LIBRARIES = NO;
+ OTHER_LDFLAGS = "-static";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
If you put an underscore in front of main
in both places and give up on static linking:
Metadata
Metadata
Assignees
Labels
No labels