1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-23 17:34:00 +03:00
Commit Graph

12 Commits

Author SHA1 Message Date
Michał Górny
4c79662e25 build-sys: Perform flag tests in context to existing flags
Fix the CC_CHECK_FLAG_APPEND macro to test appended flags in context to
current flag values. Otherwise, it is possible to append flags colliding
with user's *FLAGS or even previously appended flags that will cause
the build to fail.
2016-02-06 14:57:46 +01:00
Filipe Brandenburger
a01a4517e1 build-sys: Check behavior of -Werror=shadow before deciding to use it
gcc versions 4.6 and earlier used to complain when a local variable
shadows a global function, 4.7 and above only complain if a local
variable shadows a global variable.

Fix this by checking whether gcc 4.7+ behavior is in place before
deciding to use -Werror=shadow in $(CFLAGS), by using a custom test
program source that shadows a global function with a local variable and
confirming that -Werror=shadow does not make the compile to break.

Tested:
- On gcc 4.7 and 4.8, confirmed nothing changed (other than the order of
  the -Werror=shadow argument, going to the end of CFLAGS.)
- On gcc 4.6, confirmed by looking at the config.log output that the
  check for -Werror=shadow failed and it was not included in CFLAGS.
- Ran `make V=1` to confirm -Werror=shadow was still in use, introduced
  a bogus shadowing issue and confirmed it was caught when building with
  a recent gcc.
2015-09-22 09:54:33 -07:00
Filipe Brandenburger
6a937f0645 build-sys: properly quote m4 macro arguments in CC_CHECK_FLAGS_APPEND
The variables should be quoted inside [...] to avoid double macro
expansion.  This is currently not an issue, since the values (-W...) are
not really macros, but we might as well just fix that issue now.

Tested by re-running autogen.sh and comparing the value of OUR_CFLAGS in
the generated Makefile.  Ran a full build from a clean tree to confirm
no other issues were introduced.
2015-09-22 09:54:33 -07:00
David Herrmann
43bbf1acc8 build: make sure to test for -Wflag instead of -Wno-flag
gcc does not support testing for negated warnings. See here for details:
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63499

This patch changes CC_CHECK_FLAG_APPEND to always test for the non-negated
warnings.
2015-02-24 17:49:48 +01:00
Harald Hoyer
3f85ef0f05 s/commandline/command line/g 2014-11-06 15:34:18 +01:00
Zbigniew Jędrzejewski-Szmek
0943f4b7b2 build-sys: fix conftest.c to work on arm
All tests for compiler support were failing with:

/usr/bin/ld: /tmp/ccwnVc2A.o: relocation R_ARM_MOVW_ABS_NC against `a' can not be used when making a shared object; recompile with -fPIC
2014-08-03 00:28:12 -04:00
David Herrmann
d8c8508bad build: check for build/link flags harder
Use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE to test for flags that
might succeed during compilation but not during linking. An example is gcc
compiled with libssp support but gnu-ld without it. In this case
-fstack-protector works fine during compilation but fails during linking
as several internal helpers are missing.
2013-09-16 09:59:16 -05:00
Jason St. John
e9c1ea9de8 replace tabs with spaces in various files
The affected files in this patch had inconsistent use of tabs vs. spaces
for indentation, and this patch eliminates the stray tabs.

Also, the opening brace of sigchld_hdl() in activate.c was moved so the
opening braces are consistent throughout the file.
2013-07-02 23:06:22 -04:00
Lucas De Marchi
cdefbd6aeb build-sys: Append -Werror when testing flags
Clang don't treat unknown warnings flags as an error, but rather as a
warning. The result is that the detection for whic CFLAGS are supported
by this compiler will not work, since the compilation will succeed.

With this patch we now successfully detect clang doesn't support
-Wlogical-op, as opposed to previous behavior:

	checking if clang supports flag -Wlogical-op in envvar CFLAGS... no

We use this macro only for LDFLAGS and CFLAGS, so it's safe to stash
-Werror there.
2012-09-14 19:06:50 +02:00
Lucas De Marchi
eb2e280f9c build-sys: do not set CFLAGS directly
Set a separate variable for adding warning flags. Build systems are not
supposed to change CFLAGS and LDFLAGS, these are user variables.

Reference: http://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html
2012-03-26 21:02:26 +02:00
Lucas De Marchi
c18514440d build-sys: fix AC_COMPILE_IFELSE tests
This removes some warnings when bootstrapping. The warnings were introduced
in autoconf 2.68. Reference:

http://www.flameeyes.eu/autotools-mythbuster/forwardporting/autoconf.html

The following code

	AC_COMPILE_IFELSE([
		<MY C CODE HERE>
		], ...)

is changed to

	AC_COMPILE_IFELSE(
		[AC_COMPILE_IFELSE([AC_LANG_SOURCE([
		<MY C CODE HERE>
		])], ...)
2011-02-08 12:11:53 +01:00
Lennart Poettering
47be870bd8 build: basic autoconfization 2010-02-03 14:21:48 +01:00