This commit adds a patch to remove a superfluous include.
Removing this include prevents the following error (detected by LEDE
project's buildbot while compiling for mips64 architecture):
(Note: directory names shorted for better readability)
In file included from mmc.h:20:0,
from mmc_cmds.c:37:
/srv/.../include/asm-generic/int-ll64.h:29:44: error: conflicting types for '__s64'
__extension__ typedef __signed__ long long __s64;
^
In file included from /srv/.../include/asm/types.h:22:0,
from /srv/.../include/linux/types.h:4,
from /srv/.../include/linux/fs.h:11,
from mmc_cmds.c:35:
/srv/.../include/asm-generic/int-l64.h:28:25: note: previous declaration of '__s64' was here
typedef __signed__ long __s64;
^
In file included from mmc.h:20:0,
from mmc_cmds.c:37:
/srv/.../include/asm-generic/int-ll64.h:30:42: error: conflicting types for '__u64'
__extension__ typedef unsigned long long __u64;
^
In file included from /srv/.../include/asm/types.h:22:0,
from /srv/.../include/linux/types.h:4,
from /srv/.../include/linux/fs.h:11,
from mmc_cmds.c:35:
/srv/.../include/asm-generic/int-l64.h:29:23: note: previous declaration of '__u64' was here
typedef unsigned long __u64;
^
Makefile:36: recipe for target 'mmc_cmds.o' failed
The patch was already sent upstream, no response yet.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Also already mentioned in ba4338d6f7,
the security feature FORTIFY_SOURCE could be set globally.
The current approach tries to undefine and redefine it, however,
the order on the command line prevents this from being successfully, e.g.:
arm-openwrt-linux-muslgnueabi-gcc ... -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 ... -D_FORTIFY_SOURCE=1 ...
`---------------v-------------------' `--------v--------'
AM_CFLAGS OpenWrt params
So to have the original source (static) _FORTIFY_SOURCE=2 define,
the only option is to remove it from AM_CFLAGS completely, and
to pass it after the OpenWrt settings explicitely in the Makefile.
This should fix the buildbots finally.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
The previous commit
ba4338d mmc-utils: don't set -D_FORTIFY_SOURCE in Makefile
applied the global value of FORITFY_SOURCE also to mmc-utils.
As the package was meant to be built with FORTIFY_SOURCE upstream,
restore that behaviour and make it play nice with the global setting
by undefining the macro before defining it.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Now that security features are set globally, having the
FORTIFY_SOURCE option set in Makefile breaks the build when
CONFIG_PKG_FORTIFY_SOURCE_{1,2} is enabled as well.
arm-openwrt-linux-uclibcgnueabi-gcc -Wall -Werror -Wuninitialized -Wundef -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -Os -pipe -march=armv6k -mtune=mpcore -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -mfloat-abi=soft -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -Wp,-MMD,./.mmc.o.d,-MT,mmc.o -c mmc.c -o mmc.o
<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
<command-line>:0:0: note: this is the location of the previous definition
cc1: all warnings being treated as errors
Makefile:35: recipe for target 'mmc.o' failed
Fix this by removing -D_FORTIFY_SOURCE=2 from Makefile.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Michael Heimpold <mhei@heimpold.de>