* [PATCH 0/2] multipath-tools: fix build failures on GCC 4.8
@ 2018-07-30 19:37 Mauricio Faria de Oliveira
2018-07-30 19:37 ` [PATCH 1/2] multipath-tools: fix compilation with gcc < 4.9 on dash shell Mauricio Faria de Oliveira
2018-07-30 19:37 ` [PATCH 2/2] multipath-tools: check for C compiler option -Werror=discarded-qualifiers Mauricio Faria de Oliveira
0 siblings, 2 replies; 5+ messages in thread
From: Mauricio Faria de Oliveira @ 2018-07-30 19:37 UTC (permalink / raw)
To: christophe.varoqui; +Cc: dm-devel
This series fixes a couple of build failures hit on GCC 4.8
(one actually due to dash/bash differences) on Ubuntu 14.04.
Also tested on Ubuntu 18.04 (GCC 7.3) for (no) regressions.
Before:
$ make
cc: error: unrecognized command line option ‘-fstack-protector-strong’
make[1]: Entering directory `/home/ubuntu/git/multipath-tools/libmpathcmd'
building mpath_cmd.o because of mpath_cmd.c
cc -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int -Werror=implicit-function-declaration -Werror=format-security -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered -Werror=cast-qual -Werror=discarded-qualifiers -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -DBIN_DIR=\"/sbin\" -DLIB_STRING=\"lib64\" -DRUN_DIR=\"run\" -MMD -MP -fPIC -c -o mpath_cmd.o mpath_cmd.c
cc: error: unrecognized command line option ‘-fstack-protector-strong’
make[1]: *** [mpath_cmd.o] Error 1
After Patch 1:
$ make
make[1]: Entering directory `/home/ubuntu/git/multipath-tools/libmpathcmd'
building mpath_cmd.o because of mpath_cmd.c
cc -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int -Werror=implicit-function-declaration -Werror=format-security -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered -Werror=cast-qual -Werror=discarded-qualifiers -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -DBIN_DIR=\"/sbin\" -DLIB_STRING=\"lib64\" -DRUN_DIR=\"run\" -MMD -MP -fPIC -c -o mpath_cmd.o mpath_cmd.c
cc1: error: -Werror=discarded-qualifiers: no option -Wdiscarded-qualifiers
make[1]: *** [mpath_cmd.o] Error 1
After Patch 2:
$ make
make[1]: Entering directory `/home/ubuntu/git/multipath-tools/libmpathcmd'
building mpath_cmd.o because of mpath_cmd.c
cc -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int -Werror=implicit-function-declaration -Werror=format-security -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered -Werror=cast-qual -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -DBIN_DIR=\"/sbin\" -DLIB_STRING=\"lib64\" -DRUN_DIR=\"run\" -MMD -MP -fPIC -c -o mpath_cmd.o mpath_cmd.c
cc -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname=libmpathcmd.so.0 -o libmpathcmd.so.0 mpath_cmd.o
ln -sf libmpathcmd.so.0 libmpathcmd.so
make[1]: Leaving directory `/home/ubuntu/git/multipath-tools/libmpathcmd'
Mauricio Faria de Oliveira (2):
multipath-tools: fix compilation with gcc < 4.9 on dash shell
multipath-tools: check for C compiler option
-Werror=discarded-qualifiers
Makefile.inc | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--
2.17.1
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] multipath-tools: fix compilation with gcc < 4.9 on dash shell
2018-07-30 19:37 [PATCH 0/2] multipath-tools: fix build failures on GCC 4.8 Mauricio Faria de Oliveira
@ 2018-07-30 19:37 ` Mauricio Faria de Oliveira
2018-07-30 19:59 ` Bart Van Assche
2018-07-30 19:37 ` [PATCH 2/2] multipath-tools: check for C compiler option -Werror=discarded-qualifiers Mauricio Faria de Oliveira
1 sibling, 1 reply; 5+ messages in thread
From: Mauricio Faria de Oliveira @ 2018-07-30 19:37 UTC (permalink / raw)
To: christophe.varoqui; +Cc: dm-devel
The dash shell does not interpret '&>' as bash does, so instead
of stdout/stderr redirect, it runs the command in background [1].
$ for shell in bash dash; do
echo -n "$shell rc = "
$shell -c 'echo "int main(void){return 0;}" \
| gcc -o /dev/null -c -fFAIL -xc - &>/dev/null; echo $?';
done
bash rc = 1
dash rc = 0
$ gcc: error: unrecognized command line option ‘-fFAIL’
This misleads the check for C compiler option in Makefile.inc
on Ubuntu 14.04 at least, which uses dash as /bin/sh, and has
GCC 4.8 (no -fstack-protector-strong), then the build fails.
So, replace '&>' with the equivalent '>' and '>&2'.
No regression on Ubuntu 18.04 (GCC 7.3, -fstack-protector-strong used).
Fixes: a8dd838c
"multipath-tools: fix compilation with gcc < 4.9"
[1] https://wiki.ubuntu.com/DashAsBinSh (see '&>' section)
Signed-off-by: Mauricio Faria de Oliveira <mfo@canonical.com>
---
Makefile.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.inc b/Makefile.inc
index af2f5bae09d3..a12b46ef315e 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -78,7 +78,7 @@ INSTALL_PROGRAM = install
# Test if the C compiler supports the option.
# Evaluates to "option" if yes, and "fallback" otherwise.
TEST_CC_OPTION = $(shell \
- if echo 'int main(void){return 0;}' | $(CC) -o /dev/null -c "$(1)" -xc - &>/dev/null; \
+ if echo 'int main(void){return 0;}' | $(CC) -o /dev/null -c "$(1)" -xc - >/dev/null 2>&1; \
then \
echo "$(1)"; \
else \
--
2.17.1
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] multipath-tools: check for C compiler option -Werror=discarded-qualifiers
2018-07-30 19:37 [PATCH 0/2] multipath-tools: fix build failures on GCC 4.8 Mauricio Faria de Oliveira
2018-07-30 19:37 ` [PATCH 1/2] multipath-tools: fix compilation with gcc < 4.9 on dash shell Mauricio Faria de Oliveira
@ 2018-07-30 19:37 ` Mauricio Faria de Oliveira
2018-07-30 20:00 ` Bart Van Assche
1 sibling, 1 reply; 5+ messages in thread
From: Mauricio Faria de Oliveira @ 2018-07-30 19:37 UTC (permalink / raw)
To: christophe.varoqui; +Cc: dm-devel
The -Werror=discarded-qualifiers option is not supported on GCC 4.8
(ships in Ubuntu 14.04 at least). Use TEST_CC_OPTION to detect that
and fix a build failure.
No regression on Ubuntu 18.04 (GCC 7.3, -Werror=discarded-qualifiers
used).
Fixes: ff307801
"multipath-tools: Makefile.inc: use -Werror=cast-qual"
Signed-off-by: Mauricio Faria de Oliveira <mfo@canonical.com>
---
Makefile.inc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile.inc b/Makefile.inc
index a12b46ef315e..a83f02c72ed6 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -86,11 +86,12 @@ TEST_CC_OPTION = $(shell \
fi)
STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
+ERROR_DISCARDED_QUALIFIERS := $(call TEST_CC_OPTION,-Werror=discarded-qualifiers,)
OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \
-Werror=implicit-function-declaration -Werror=format-security \
-Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \
- -Werror=cast-qual -Werror=discarded-qualifiers \
+ -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) \
-Wp,-D_FORTIFY_SOURCE=2 $(STACKPROT) \
--param=ssp-buffer-size=4
--
2.17.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] multipath-tools: fix compilation with gcc < 4.9 on dash shell
2018-07-30 19:37 ` [PATCH 1/2] multipath-tools: fix compilation with gcc < 4.9 on dash shell Mauricio Faria de Oliveira
@ 2018-07-30 19:59 ` Bart Van Assche
0 siblings, 0 replies; 5+ messages in thread
From: Bart Van Assche @ 2018-07-30 19:59 UTC (permalink / raw)
To: mfo, christophe.varoqui; +Cc: dm-devel
[-- Attachment #1: Type: text/plain, Size: 915 bytes --]
On Mon, 2018-07-30 at 16:37 -0300, Mauricio Faria de Oliveira wrote:
> diff --git a/Makefile.inc b/Makefile.inc
> index af2f5bae09d3..a12b46ef315e 100644
> --- a/Makefile.inc
> +++ b/Makefile.inc
> @@ -78,7 +78,7 @@ INSTALL_PROGRAM = install
> # Test if the C compiler supports the option.
> # Evaluates to "option" if yes, and "fallback" otherwise.
> TEST_CC_OPTION = $(shell \
> - if echo 'int main(void){return 0;}' | $(CC) -o /dev/null -c "$(1)" -xc - &>/dev/null; \
> + if echo 'int main(void){return 0;}' | $(CC) -o /dev/null -c "$(1)" -xc - >/dev/null 2>&1; \
> then \
> echo "$(1)"; \
> else \
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] multipath-tools: check for C compiler option -Werror=discarded-qualifiers
2018-07-30 19:37 ` [PATCH 2/2] multipath-tools: check for C compiler option -Werror=discarded-qualifiers Mauricio Faria de Oliveira
@ 2018-07-30 20:00 ` Bart Van Assche
0 siblings, 0 replies; 5+ messages in thread
From: Bart Van Assche @ 2018-07-30 20:00 UTC (permalink / raw)
To: mfo, christophe.varoqui; +Cc: dm-devel
On Mon, 2018-07-30 at 16:37 -0300, Mauricio Faria de Oliveira wrote:
> The -Werror=discarded-qualifiers option is not supported on GCC 4.8
> (ships in Ubuntu 14.04 at least). Use TEST_CC_OPTION to detect that
> and fix a build failure.
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-07-30 20:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-30 19:37 [PATCH 0/2] multipath-tools: fix build failures on GCC 4.8 Mauricio Faria de Oliveira
2018-07-30 19:37 ` [PATCH 1/2] multipath-tools: fix compilation with gcc < 4.9 on dash shell Mauricio Faria de Oliveira
2018-07-30 19:59 ` Bart Van Assche
2018-07-30 19:37 ` [PATCH 2/2] multipath-tools: check for C compiler option -Werror=discarded-qualifiers Mauricio Faria de Oliveira
2018-07-30 20:00 ` Bart Van Assche
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.