2015-04-18 14:46:30

by Bobby Powers

[permalink] [raw]
Subject: [PATCH] tools/lib/api: undefine _FORTIFY_SOURCE before setting it

Some toolchains (like Hardened Gentoo) define _FORTIFY_SOURCE in the
built-in, default args. This causes perf builds to fail with:

<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
<built-in>: note: this is the location of the previous definition
cc1: all warnings being treated as errors

To avoid this, undefine _FORTIFY_SOURCE before (possibly
re-)defining it in tools/lib/api.

Signed-off-by: Bobby Powers <[email protected]>
---
tools/lib/api/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
index 36c08b1..87c72d1 100644
--- a/tools/lib/api/Makefile
+++ b/tools/lib/api/Makefile
@@ -21,7 +21,7 @@ LIB_OBJS += $(OUTPUT)fd/array.o

LIBFILE = libapikfs.a

-CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
+CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
EXTLIBS = -lelf -lpthread -lrt -lm
ALL_CFLAGS = $(CFLAGS) $(BASIC_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
ALL_LDFLAGS = $(LDFLAGS)
--
2.3.5


2015-04-18 15:05:57

by Jiri Olsa

[permalink] [raw]
Subject: Re: [PATCH] tools/lib/api: undefine _FORTIFY_SOURCE before setting it

On Sat, Apr 18, 2015 at 10:46:20AM -0400, Bobby Powers wrote:
> Some toolchains (like Hardened Gentoo) define _FORTIFY_SOURCE in the
> built-in, default args. This causes perf builds to fail with:
>
> <command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
> <built-in>: note: this is the location of the previous definition
> cc1: all warnings being treated as errors
>
> To avoid this, undefine _FORTIFY_SOURCE before (possibly
> re-)defining it in tools/lib/api.
>
> Signed-off-by: Bobby Powers <[email protected]>

Acked-by: Jiri Olsa <[email protected]>

thanks,
jirka

> ---
> tools/lib/api/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
> index 36c08b1..87c72d1 100644
> --- a/tools/lib/api/Makefile
> +++ b/tools/lib/api/Makefile
> @@ -21,7 +21,7 @@ LIB_OBJS += $(OUTPUT)fd/array.o
>
> LIBFILE = libapikfs.a
>
> -CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
> +CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
> EXTLIBS = -lelf -lpthread -lrt -lm
> ALL_CFLAGS = $(CFLAGS) $(BASIC_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> ALL_LDFLAGS = $(LDFLAGS)
> --
> 2.3.5
>

2015-04-20 19:00:39

by Bobby Powers

[permalink] [raw]
Subject: Re: [PATCH] tools/lib/api: undefine _FORTIFY_SOURCE before setting it

+CC linux-kbuild. Related to this Dirk's work [1].

On Sat, Apr 18, 2015 at 11:05 AM, Jiri Olsa <[email protected]> wrote:
> On Sat, Apr 18, 2015 at 10:46:20AM -0400, Bobby Powers wrote:
>> Some toolchains (like Hardened Gentoo) define _FORTIFY_SOURCE in the
>> built-in, default args. This causes perf builds to fail with:
>>
>> <command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
>> <built-in>: note: this is the location of the previous definition
>> cc1: all warnings being treated as errors
>>
>> To avoid this, undefine _FORTIFY_SOURCE before (possibly
>> re-)defining it in tools/lib/api.
>>
>> Signed-off-by: Bobby Powers <[email protected]>
>
> Acked-by: Jiri Olsa <[email protected]>
>
> thanks,
> jirka


yours,
Bobby

1 - https://lkml.org/lkml/2015/4/20/269

>
>> ---
>> tools/lib/api/Makefile | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
>> index 36c08b1..87c72d1 100644
>> --- a/tools/lib/api/Makefile
>> +++ b/tools/lib/api/Makefile
>> @@ -21,7 +21,7 @@ LIB_OBJS += $(OUTPUT)fd/array.o
>>
>> LIBFILE = libapikfs.a
>>
>> -CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
>> +CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
>> EXTLIBS = -lelf -lpthread -lrt -lm
>> ALL_CFLAGS = $(CFLAGS) $(BASIC_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
>> ALL_LDFLAGS = $(LDFLAGS)
>> --
>> 2.3.5
>>