Skip to content

Commit 73426bc

Browse files
committed
2 parents 04f0ee0 + 983db51 commit 73426bc

File tree

3 files changed

+16
-11
lines changed

3 files changed

+16
-11
lines changed

Arduino.mk

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,7 @@ endif
10451045

10461046
ifndef CFLAGS_STD
10471047
ifeq ($(shell expr $(CC_VERNUM) '>' 490), 1)
1048-
CFLAGS_STD = -std=gnu11 -flto -fno-fat-lto-objects -fdiagnostics-color
1048+
CFLAGS_STD = -std=gnu11
10491049
else
10501050
CFLAGS_STD =
10511051
endif
@@ -1056,7 +1056,7 @@ endif
10561056

10571057
ifndef CXXFLAGS_STD
10581058
ifeq ($(shell expr $(CC_VERNUM) '>' 490), 1)
1059-
CXXFLAGS_STD = -std=gnu++11 -fno-threadsafe-statics -flto -fno-devirtualize -fdiagnostics-color
1059+
CXXFLAGS_STD = -std=gnu++11
10601060
else
10611061
CXXFLAGS_STD =
10621062
endif
@@ -1069,7 +1069,9 @@ CFLAGS += $(CFLAGS_STD)
10691069
CXXFLAGS += -fpermissive -fno-exceptions $(CXXFLAGS_STD)
10701070
ASFLAGS += -x assembler-with-cpp
10711071
ifeq ($(shell expr $(CC_VERNUM) '>' 490), 1)
1072-
ASFLAGS += -flto
1072+
ASFLAGS += -flto
1073+
CXXFLAGS += -fno-threadsafe-statics -flto -fno-devirtualize -fdiagnostics-color
1074+
CFLAGS += -flto -fno-fat-lto-objects -fdiagnostics-color
10731075
endif
10741076
LDFLAGS += -$(MCU_FLAG_NAME)=$(MCU) -Wl,--gc-sections -O$(OPTIMIZATION_LEVEL)
10751077
ifeq ($(shell expr $(CC_VERNUM) '>' 490), 1)

HISTORY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it
88
- Fix: Add -fno-devirtualize flag to workaround g++ segfault bug (issue #486). (https://github.com/sej7278)
99
- Fix: Quote the prefix tag in the space_pad_to function
1010
- Tweak: Set ARDMK_VERSION to 1.6 (https://github.com/sej7278)
11+
- Tweak: Move non-standard-related items from CxxFLAGS_STD to CxxFLAGS (issue #523) (https://github.com/sej7278)
1112
- New: Added -fdiagnostics-color to *STD flags (https://github.com/sej7278)
1213
- New: Add generation of tags file using ctags, which automatically includes project libs and Arduino core. (https://github.com/tuna-f1sh)
1314

arduino-mk-vars.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -913,7 +913,7 @@ OTHER_LIBS = -lsomeplatformlib
913913

914914
Controls, *exclusively*, which C standard is to be used for compilation.
915915

916-
Defaults to `undefined` on 1.0.x or `-std=gnu11 -flto -fno-fat-lto-objects` on 1.5+ or if you install AVR toolchain > 4.9.0
916+
Defaults to `undefined` on 1.0.x or `-std=gnu11` on 1.5+ or if you install AVR toolchain > 4.9.0
917917

918918
Possible values:
919919

@@ -928,14 +928,14 @@ Possible values:
928928
* `-std=c11`
929929
* `-std=gnu89`
930930
* `-std=gnu99`
931-
* `-std=gnu11 -flto -fno-fat-lto-objects` - This is the default for C code
931+
* `-std=gnu11` - This is the default for C code
932932

933933
For more information, please refer to the [Options Controlling C Dialect](https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html)
934934

935935
**Example:**
936936

937937
```Makefile
938-
CFLAGS_STD = = -std=gnu89
938+
CFLAGS_STD = -std=gnu89
939939
```
940940

941941
**Requirement:** *Optional*
@@ -948,7 +948,7 @@ CFLAGS_STD = = -std=gnu89
948948

949949
Controls, *exclusively*, which C++ standard is to be used for compilation.
950950

951-
Defaults to `undefined` on 1.0 or `-std=gnu++11 -fno-threadsafe-statics -flto` on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
951+
Defaults to `undefined` on 1.0 or `-std=gnu++11` on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
952952

953953
Possible values:
954954

@@ -965,7 +965,7 @@ Possible values:
965965
* `-std=c++1y`
966966
* `-std=c++14`
967967
* `-std=gnu++98`
968-
* `-std=gnu++11 -fno-threadsafe-statics -flto` - This is the default for C++ code
968+
* `-std=gnu++11` - This is the default for C++ code
969969
* `-std=gnu++1y`
970970
* `-std=gnu++14`
971971

@@ -974,7 +974,7 @@ For more information, please refer to the [Options Controlling C Dialect](https:
974974
**Example:**
975975

976976
```Makefile
977-
CXXFLAGS_STD = = -std=gnu++98
977+
CXXFLAGS_STD = -std=gnu++98
978978
```
979979

980980
**Requirement:** *Optional*
@@ -988,7 +988,7 @@ CXXFLAGS_STD = = -std=gnu++98
988988
Flags passed to compiler for files compiled as C. Add more flags to this
989989
variable using `+=`.
990990

991-
Defaults to all flags required for a typical build.
991+
Defaults to `undefined` on 1.0 or `-flto -fno-fat-lto-objects -fdiagnostics-color` on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
992992

993993
**Example:**
994994

@@ -1007,7 +1007,9 @@ CFLAGS += -my-c-only-flag
10071007
Flags passed to the compiler for files compiled as C++. Add more flags to this
10081008
variable using `+=`.
10091009

1010-
Defaults to `-fpermissive -fno-exceptions`
1010+
Defaults to `-fpermissive -fno-exceptions` on 1.0
1011+
or `-fpermissive -fno-exceptions -fno-threadsafe-statics -flto -fno-devirtualize -fdiagnostics-color`
1012+
on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
10111013

10121014
**Example:**
10131015

0 commit comments

Comments
 (0)