Rewrite in Markdown. Explain what the tool is useful for today, and what the tool was used for earlier (which no longer is relevant today).
--- The brief description of the project on Github is "Perl script that implements a subset of the GNU as preprocessor that Apple's as doesn't". I think it might be simplest to shorten this to "Perl script that implements a subset of the GNU as preprocessor". --- README | 13 ------------- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 13 deletions(-) delete mode 100644 README create mode 100644 README.md diff --git a/README b/README deleted file mode 100644 index 0ab5ab3..0000000 --- a/README +++ /dev/null @@ -1,13 +0,0 @@ -To configure FFmpeg for iOS: - -./configure --enable-cross-compile --arch=arm --target-os=darwin --cc='clang -arch armv7' --sysroot=$(xcrun --sdk iphoneos --show-sdk-path) --cpu=cortex-a8 --enable-pic - -If deploying to all generations, it's recommended to do separate out-of-tree -builds for each architecture, then lipo together the resulting libs. For -instance, assuming separate builds in armv6 and armv7: - -lipo -create -arch armv6 armv6/libavcodec/libavcodec.a -arch armv7 armv7/libavcodec/libavcodec.a -output universal/libavcodec.a - -and similar for each library. Then in XCode, make sure to build for both armv6 -and armv7. If you only care about one generation (since the armv6 devices are -too slow for instance), then lipo is unnecessary of course. diff --git a/README.md b/README.md new file mode 100644 index 0000000..9b80f71 --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +gas-preprocessor +================ + +This is a script for parsing GAS (GNU Assembler) files, expanding the +macros and similar directives into a linear sequence of instructions, +to allow building such files with assemblers that don't support the +GAS directives. + +Currently, this tool is primarily useful for building GAS files with +MSVC, for ARM and ARM64. The tool can be used for building the +ARM/AArch64 assembly in projects like FFmpeg, dav1d, x264 and openh264. + +Additionally, for ARM assembly, the tool can rewrite some instructions +that only can be assembled in ARM mode, into the corresponding sequences +of instructions that can be assembled in Thumb mode. This can allow +assembling sources that have been written without support for Thumb +mode for Windows (where Thumb mode is the default). + +Earlier use cases +----------------- + +Originally, the tool was made for building things for Apple platforms; +ARM and PowerPC assembly. Apple used to ship an ancient version of +GAS, which used a different macroing syntax than the modern GNU +assembler. + +Since Apple have replaced the ancient version of GAS it with LLVM/Clang +based tooling, and LLVM's assembler support has improved to handle +most relevant directives, gas-preprocessor is no longer needed for +Apple platforms. Since Xcode 9.3 (LLVM 5.0), those tools support +everything needed for building FFmpeg's ARM assembly without +gas-preprocessor. (FFmpeg's AArch64 assembly never required +gas-preprocessor on Apple platforms.) + +The main remaining platform where gas-preprocessor is needed, is for +MSVC tooling, to make GAS assembly files buildable with the MS +armasm/armasm64 assemblers. + +Usage +----- + +The projects listed above automatically try to use gas-preprocessor +when configuring for a toolchain and architecture where needed; it +doesn't need to be manually specified. -- 2.43.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
