From 186366d339f16f538296200e537cef9c5199f24a Mon Sep 17 00:00:00 2001 From: Graham Date: Sun, 8 Sep 2019 13:52:46 +0100 Subject: [PATCH] Move compiler/linker flags from profiles to aol.properties This is to make cross-compiling for i386 on amd64 easier, by adding -m32/64 or -arch flags where appropriate. This commit also adds a gcc linker on Linux and macOS, replacing the default g++ linker. It's roughly equivalent, but means the shared library has fewer dependencies (e.g. it doesn't link against libstdc++). --- aol.properties | 103 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 aol.properties diff --git a/aol.properties b/aol.properties new file mode 100644 index 0000000..5da89c8 --- /dev/null +++ b/aol.properties @@ -0,0 +1,103 @@ +# Linux i386 +i386.Linux.linker=gcc + +i386.Linux.gcc.c.compiler=gcc +i386.Linux.gcc.c.defines= +i386.Linux.gcc.c.options=-m32 -Wall -Wextra -pedantic -Wno-int-to-void-pointer-cast -Wno-unused-parameter +i386.Linux.gcc.c.includes=**/*.c +i386.Linux.gcc.c.excludes= + +i386.Linux.gcc.java.include=include;include/linux +i386.Linux.gcc.java.runtimeDirectory=jre/lib/i386/client + +i386.Linux.gcc.linker.options=-m32 -fPIC + +i386.Linux.gcc.lib.prefix=lib +i386.Linux.gcc.shared.prefix=lib +i386.Linux.gcc.static.extension=a +i386.Linux.gcc.shared.extension=so* +i386.Linux.gcc.plugin.extension=so +i386.Linux.gcc.jni.extension=so +i386.Linux.gcc.executable.extension= + +# Linux amd64 +amd64.Linux.linker=gcc + +amd64.Linux.gcc.c.compiler=gcc +amd64.Linux.gcc.c.defines= +amd64.Linux.gcc.c.options=-m64 -Wall -Wextra -pedantic -Wno-int-to-void-pointer-cast -Wno-unused-parameter +amd64.Linux.gcc.c.includes=**/*.c +amd64.Linux.gcc.c.excludes= + +amd64.Linux.gcc.java.include=include;include/linux +amd64.Linux.gcc.java.runtimeDirectory=jre/lib/amd64/server + +amd64.Linux.gcc.linker.options=-m64 -fPIC + +amd64.Linux.gcc.lib.prefix=lib +amd64.Linux.gcc.shared.prefix=lib +amd64.Linux.gcc.static.extension=a +amd64.Linux.gcc.shared.extension=so* +amd64.Linux.gcc.plugin.extension=so +amd64.Linux.gcc.jni.extension=so +amd64.Linux.gcc.executable.extension= + +# macOS i386 +i386.MacOSX.linker=gcc + +i386.MacOSX.gcc.c.compiler=gcc +i386.MacOSX.gcc.c.defines= +i386.MacOSX.gcc.c.options=-arch i386 -x objective-c -Wall -Wextra -pedantic -Wno-int-to-void-pointer-cast -Wno-unused-parameter +i386.MacOSX.gcc.c.includes=**/*.c +i386.MacOSX.gcc.c.excludes= + +i386.MacOSX.gcc.java.include=include;include/darwin +i386.MacOSX.gcc.java.runtimeDirectory=IGNORED + +i386.MacOSX.gcc.linker.options=-arch i386 + +i386.MacOSX.gcc.lib.prefix=lib +i386.MacOSX.gcc.shared.prefix=lib +i386.MacOSX.gcc.static.extension=a +i386.MacOSX.gcc.shared.extension=dylib +i386.MacOSX.gcc.plugin.extension=bundle +i386.MacOSX.gcc.jni.extension=jnilib +i386.MacOSX.gcc.executable.extension= + +# macOS amd64 +x86_64.MacOSX.linker=gcc + +x86_64.MacOSX.gcc.c.compiler=gcc +x86_64.MacOSX.gcc.c.defines= +x86_64.MacOSX.gcc.c.options=-arch x86_64 -x objective-c -Wall -Wextra -pedantic -Wno-int-to-void-pointer-cast -Wno-unused-parameter +x86_64.MacOSX.gcc.c.includes=**/*.c +x86_64.MacOSX.gcc.c.excludes= + +x86_64.MacOSX.gcc.java.include=include;include/darwin +x86_64.MacOSX.gcc.java.runtimeDirectory=IGNORED + +x86_64.MacOSX.gcc.linker.options=-arch x86_64 + +x86_64.MacOSX.gcc.lib.prefix=lib +x86_64.MacOSX.gcc.shared.prefix=lib +x86_64.MacOSX.gcc.static.extension=a +x86_64.MacOSX.gcc.shared.extension=dylib +x86_64.MacOSX.gcc.plugin.extension=bundle +x86_64.MacOSX.gcc.jni.extension=jnilib +x86_64.MacOSX.gcc.executable.extension= + +# Windows i386 +x86.Windows.msvc.c.defines=WIN32_LEAN_AND_MEAN +# C1400: unused parameter +# C4201: non-standard extension: nameless struct/union (in jawt_md.h) +# C4204: non-standard extension: non-constant aggregate initializer +# C4255: no function prototype given (in winuser.h) +# C4305: type cast: truncation from to (only on 32-bit machines) +# C4668: undefined processor macro (in vcruntime.h and winioctl.h) +# C4820: padding after data member (in jawt.h and jni.h) +# C5045: compiler will insert Spectre mitigation +x86.Windows.msvc.c.options=/Wall /wd4100 /wd4201 /wd4204 /wd4255 /wd4305 /wd4668 /wd4820 /wd5045 + +# Windows amd64 +amd64.Windows.msvc.c.defines=WIN32_LEAN_AND_MEAN +amd64.Windows.msvc.c.options=/Wall /wd4100 /wd4201 /wd4204 /wd4255 /wd4305 /wd4668 /wd4820 /wd5045