build-sys: must link with -fstack-protector
It is needed to give that flag to the linker as well, but latest libtool 2.4.2 still swallows that argument, so let's pass it with libtool -Wc argument. qemu-1.4.0/stubs/arch-query-cpu-def.c:6: undefined reference to `__stack_chk_guard' Signed-off-by: Marc-André Lureau <mlureau@redhat.com> Reviewed-by: Alon Levy <alevy@redhat.com>
This commit is contained in:
parent
d3bf825e59
commit
37746c5eac
8
configure
vendored
8
configure
vendored
@ -1244,7 +1244,7 @@ fi
|
|||||||
gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
|
gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
|
||||||
gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
|
gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
|
||||||
gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
|
gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
|
||||||
gcc_flags="-fstack-protector-all -Wendif-labels $gcc_flags"
|
gcc_flags="-Wendif-labels $gcc_flags"
|
||||||
gcc_flags="-Wno-initializer-overrides $gcc_flags"
|
gcc_flags="-Wno-initializer-overrides $gcc_flags"
|
||||||
# Note that we do not add -Werror to gcc_flags here, because that would
|
# Note that we do not add -Werror to gcc_flags here, because that would
|
||||||
# enable it for all configure tests. If a configure test failed due
|
# enable it for all configure tests. If a configure test failed due
|
||||||
@ -1263,6 +1263,11 @@ for flag in $gcc_flags; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if compile_prog "-Werror -fstack-protector-all" "" ; then
|
||||||
|
QEMU_CFLAGS="$QEMU_CFLAGS -fstack-protector-all"
|
||||||
|
LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,-fstack-protector-all"
|
||||||
|
fi
|
||||||
|
|
||||||
# Workaround for http://gcc.gnu.org/PR55489. Happens with -fPIE/-fPIC and
|
# Workaround for http://gcc.gnu.org/PR55489. Happens with -fPIE/-fPIC and
|
||||||
# large functions that use global variables. The bug is in all releases of
|
# large functions that use global variables. The bug is in all releases of
|
||||||
# GCC, but it became particularly acute in 4.6.x and 4.7.x. It is fixed in
|
# GCC, but it became particularly acute in 4.6.x and 4.7.x. It is fixed in
|
||||||
@ -4078,6 +4083,7 @@ else
|
|||||||
echo "AUTOCONF_HOST := " >> $config_host_mak
|
echo "AUTOCONF_HOST := " >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
|
echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
|
||||||
|
echo "LIBTOOLFLAGS=$LIBTOOLFLAGS" >> $config_host_mak
|
||||||
echo "LIBS+=$LIBS" >> $config_host_mak
|
echo "LIBS+=$LIBS" >> $config_host_mak
|
||||||
echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
|
echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
|
||||||
echo "EXESUF=$EXESUF" >> $config_host_mak
|
echo "EXESUF=$EXESUF" >> $config_host_mak
|
||||||
|
@ -36,6 +36,7 @@ LINK = $(call quiet-command,\
|
|||||||
$(if $(filter %.lo %.la,$^),$(LIBTOOL) --mode=link --tag=CC \
|
$(if $(filter %.lo %.la,$^),$(LIBTOOL) --mode=link --tag=CC \
|
||||||
)$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \
|
)$(CC) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \
|
||||||
$(sort $(filter %.o, $1)) $(filter-out %.o, $1) $(version-obj-y) \
|
$(sort $(filter %.o, $1)) $(filter-out %.o, $1) $(version-obj-y) \
|
||||||
|
$(if $(filter %.lo %.la,$^),$(LIBTOOLFLAGS)) \
|
||||||
$(LIBS),$(if $(filter %.lo %.la,$^),"lt LINK ", " LINK ")"$(TARGET_DIR)$@")
|
$(LIBS),$(if $(filter %.lo %.la,$^),"lt LINK ", " LINK ")"$(TARGET_DIR)$@")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user