[opus] [PATCH 2/2] Make the arm2gnu.pl converter handle apple specific details
martin at martin.st
Thu Mar 20 03:47:00 PDT 2014
On Wed, 19 Mar 2014, Timothy B. Terriberry wrote:
> Does Apple have equivalent machinery to any of the pieces you disabled?
> Those were:
> - object size calculations so debuggers can tell what function they're in
I'm not really aware of any equivalent directives that they'd support at
least, and judging from the output from -S from their compiler, they don't
include anything such there either.
> - architecture flags so an executable that gets linked with this object
> doesn't get tagged as requiring a later architecture than it really does
> (thanks to our runtime detection)
They do have something similar but not identicaly and I'm not sure if it
can be overridden from within an assembly source file.
They do have command line parameters -arch armv6/armv7/armv7s/arm64 which
sets the flags on object files, but they don't work quite as
.arch/.object_arch in ELF land, since the whole binary needs to be built
with the same flags (these are what identifies different versions of the
same object file in fat binaries).
And there's not much need for the runtime detection on iOS since the armv7
binary variant always supports NEON (contrary to android), so it all gets
taken care of by the OS picking the right version within a fat binary.
Additionally, the armv6 variant is deprecated to the point that the latest
SDKs don't even support compiling for that target any longer (and I doubt
they allow submissions to appstore with binaries that contain support for
it - it's at least explicitly disallowed if the app claims to support the
new, wider screen for iPhone 5 and newer).
> - the non-executable stack flags
Not that I'm aware of - didn't see anything relevant in the compiler -S
More information about the opus