aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2022-07-12 15:22:30 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2022-10-09 14:43:18 +0300
commita590cfde0cf719c637b75e4784be0c0ae60e3b1f (patch)
tree3287d2c965962c470d027ead3df8256da000ec62 /mesonbuild/compilers
parente945f35cd72402d0d204ff10870e2a95c59b6192 (diff)
downloadmeson-a590cfde0cf719c637b75e4784be0c0ae60e3b1f.zip
meson-a590cfde0cf719c637b75e4784be0c0ae60e3b1f.tar.gz
meson-a590cfde0cf719c637b75e4784be0c0ae60e3b1f.tar.bz2
compilers: Add optimization=plain option
https://github.com/mesonbuild/meson/pull/9287 changed the `optimization=0` to pass `-O0` to the compiler. This change is reasonable by itself but unfortunately, it breaks `buildtype=plain`, which promises that ā€œno extra build flags are usedā€. `buildtype=plain` is important for distros like NixOS, which manage compiler flags for optimization and hardening themselves. Letā€™s introduce a new optimization level that does nothing and set it as the default for `buildtype=plain`.
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/compilers.py6
-rw-r--r--mesonbuild/compilers/cs.py4
-rw-r--r--mesonbuild/compilers/d.py6
-rw-r--r--mesonbuild/compilers/mixins/arm.py2
-rw-r--r--mesonbuild/compilers/mixins/clang.py1
-rw-r--r--mesonbuild/compilers/mixins/compcert.py1
-rw-r--r--mesonbuild/compilers/mixins/gnu.py1
-rw-r--r--mesonbuild/compilers/mixins/intel.py6
-rw-r--r--mesonbuild/compilers/mixins/ti.py1
-rw-r--r--mesonbuild/compilers/mixins/visualstudio.py1
-rw-r--r--mesonbuild/compilers/mixins/xc16.py1
-rw-r--r--mesonbuild/compilers/rust.py1
-rw-r--r--mesonbuild/compilers/swift.py1
13 files changed, 25 insertions, 7 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 725d394..ea03869 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -254,7 +254,8 @@ msvc_winlibs = ['kernel32.lib', 'user32.lib', 'gdi32.lib',
'winspool.lib', 'shell32.lib', 'ole32.lib', 'oleaut32.lib',
'uuid.lib', 'comdlg32.lib', 'advapi32.lib'] # type: T.List[str]
-clike_optimization_args = {'0': [],
+clike_optimization_args = {'plain': [],
+ '0': [],
'g': [],
'1': ['-O1'],
'2': ['-O2'],
@@ -262,7 +263,8 @@ clike_optimization_args = {'0': [],
's': ['-Os'],
} # type: T.Dict[str, T.List[str]]
-cuda_optimization_args = {'0': [],
+cuda_optimization_args = {'plain': [],
+ '0': [],
'g': ['-O0'],
'1': ['-O1'],
'2': ['-O2'],
diff --git a/mesonbuild/compilers/cs.py b/mesonbuild/compilers/cs.py
index 9690cdb..64cca96 100644
--- a/mesonbuild/compilers/cs.py
+++ b/mesonbuild/compilers/cs.py
@@ -28,7 +28,9 @@ if T.TYPE_CHECKING:
from ..environment import Environment
from ..mesonlib import MachineChoice
-cs_optimization_args = {'0': [],
+cs_optimization_args = {
+ 'plain': [],
+ '0': [],
'g': [],
'1': ['-optimize+'],
'2': ['-optimize+'],
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py
index 54f0d9a..fbdf288 100644
--- a/mesonbuild/compilers/d.py
+++ b/mesonbuild/compilers/d.py
@@ -66,7 +66,8 @@ d_feature_args = {'gcc': {'unittest': '-funittest',
}
} # type: T.Dict[str, T.Dict[str, str]]
-ldc_optimization_args = {'0': [],
+ldc_optimization_args = {'plain': [],
+ '0': [],
'g': [],
'1': ['-O1'],
'2': ['-O2'],
@@ -74,7 +75,8 @@ ldc_optimization_args = {'0': [],
's': ['-Oz'],
} # type: T.Dict[str, T.List[str]]
-dmd_optimization_args = {'0': [],
+dmd_optimization_args = {'plain': [],
+ '0': [],
'g': [],
'1': ['-O'],
'2': ['-O'],
diff --git a/mesonbuild/compilers/mixins/arm.py b/mesonbuild/compilers/mixins/arm.py
index 5bf862d..b3abd70 100644
--- a/mesonbuild/compilers/mixins/arm.py
+++ b/mesonbuild/compilers/mixins/arm.py
@@ -43,6 +43,7 @@ arm_buildtype_args = {
} # type: T.Dict[str, T.List[str]]
arm_optimization_args = {
+ 'plain': [],
'0': ['-O0'],
'g': ['-g'],
'1': ['-O1'],
@@ -61,6 +62,7 @@ armclang_buildtype_args = {
} # type: T.Dict[str, T.List[str]]
armclang_optimization_args = {
+ 'plain': [],
'0': [], # Compiler defaults to -O0
'g': ['-g'],
'1': ['-O1'],
diff --git a/mesonbuild/compilers/mixins/clang.py b/mesonbuild/compilers/mixins/clang.py
index 5083ace..4ac9b92 100644
--- a/mesonbuild/compilers/mixins/clang.py
+++ b/mesonbuild/compilers/mixins/clang.py
@@ -35,6 +35,7 @@ clang_color_args = {
} # type: T.Dict[str, T.List[str]]
clang_optimization_args = {
+ 'plain': [],
'0': ['-O0'],
'g': ['-Og'],
'1': ['-O1'],
diff --git a/mesonbuild/compilers/mixins/compcert.py b/mesonbuild/compilers/mixins/compcert.py
index f1de8f1..f4f4cdb 100644
--- a/mesonbuild/compilers/mixins/compcert.py
+++ b/mesonbuild/compilers/mixins/compcert.py
@@ -40,6 +40,7 @@ ccomp_buildtype_args = {
} # type: T.Dict[str, T.List[str]]
ccomp_optimization_args = {
+ 'plain': [],
'0': ['-O0'],
'g': ['-O0'],
'1': ['-O1'],
diff --git a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py
index 1b1e8a1..11efcc9 100644
--- a/mesonbuild/compilers/mixins/gnu.py
+++ b/mesonbuild/compilers/mixins/gnu.py
@@ -55,6 +55,7 @@ gnulike_buildtype_args = {
} # type: T.Dict[str, T.List[str]]
gnu_optimization_args = {
+ 'plain': [],
'0': ['-O0'],
'g': ['-Og'],
'1': ['-O1'],
diff --git a/mesonbuild/compilers/mixins/intel.py b/mesonbuild/compilers/mixins/intel.py
index 2698b39..9877a54 100644
--- a/mesonbuild/compilers/mixins/intel.py
+++ b/mesonbuild/compilers/mixins/intel.py
@@ -58,7 +58,8 @@ class IntelGnuLikeCompiler(GnuLikeCompiler):
'custom': [],
} # type: T.Dict[str, T.List[str]]
- OPTIM_ARGS = {
+ OPTIM_ARGS: T.Dict[str, T.List[str]] = {
+ 'plain': [],
'0': ['-O0'],
'g': ['-O0'],
'1': ['-O1'],
@@ -136,7 +137,8 @@ class IntelVisualStudioLikeCompiler(VisualStudioLikeCompiler):
'custom': [],
} # type: T.Dict[str, T.List[str]]
- OPTIM_ARGS = {
+ OPTIM_ARGS: T.Dict[str, T.List[str]] = {
+ 'plain': [],
'0': ['/Od'],
'g': ['/Od'],
'1': ['/O1'],
diff --git a/mesonbuild/compilers/mixins/ti.py b/mesonbuild/compilers/mixins/ti.py
index a98e6d0..1821b2a 100644
--- a/mesonbuild/compilers/mixins/ti.py
+++ b/mesonbuild/compilers/mixins/ti.py
@@ -41,6 +41,7 @@ ti_buildtype_args = {
} # type: T.Dict[str, T.List[str]]
ti_optimization_args = {
+ 'plain': [],
'0': ['-O0'],
'g': ['-Ooff'],
'1': ['-O1'],
diff --git a/mesonbuild/compilers/mixins/visualstudio.py b/mesonbuild/compilers/mixins/visualstudio.py
index 81ecf74..dc5e962 100644
--- a/mesonbuild/compilers/mixins/visualstudio.py
+++ b/mesonbuild/compilers/mixins/visualstudio.py
@@ -62,6 +62,7 @@ vs64_instruction_set_args = {
} # T.Dicst[str, T.Optional[T.List[str]]]
msvc_optimization_args = {
+ 'plain': [],
'0': ['/Od'],
'g': [], # No specific flag to optimize debugging, /Zi or /ZI will create debug information
'1': ['/O1'],
diff --git a/mesonbuild/compilers/mixins/xc16.py b/mesonbuild/compilers/mixins/xc16.py
index db7a337..f160b34 100644
--- a/mesonbuild/compilers/mixins/xc16.py
+++ b/mesonbuild/compilers/mixins/xc16.py
@@ -41,6 +41,7 @@ xc16_buildtype_args = {
} # type: T.Dict[str, T.List[str]]
xc16_optimization_args = {
+ 'plain': [],
'0': ['-O0'],
'g': ['-O0'],
'1': ['-O1'],
diff --git a/mesonbuild/compilers/rust.py b/mesonbuild/compilers/rust.py
index a7bab0f..7456823 100644
--- a/mesonbuild/compilers/rust.py
+++ b/mesonbuild/compilers/rust.py
@@ -31,6 +31,7 @@ if T.TYPE_CHECKING:
rust_optimization_args = {
+ 'plain': [],
'0': [],
'g': ['-C', 'opt-level=0'],
'1': ['-C', 'opt-level=1'],
diff --git a/mesonbuild/compilers/swift.py b/mesonbuild/compilers/swift.py
index 2e427f1..6d434ae 100644
--- a/mesonbuild/compilers/swift.py
+++ b/mesonbuild/compilers/swift.py
@@ -27,6 +27,7 @@ if T.TYPE_CHECKING:
from ..mesonlib import MachineChoice
swift_optimization_args = {
+ 'plain': [],
'0': [],
'g': [],
'1': ['-O'],