mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	perf tools: Fix broken build by defining _GNU_SOURCE in Makefile
When building on my Debian/mips system, util/util.c fails to build
because commit 1aed267173 (perf kvm: Do
guest-only counting by default) indirectly includes stdio.h before the
feature selection in util.h is done.  This prevents _GNU_SOURCE in
util.h from enabling the declaration of getline(), from now second
inclusion of stdio.h, and the build is broken.
There is another breakage in util/evsel.c caused by include ordering,
but I didn't fully track down the commit that caused it.
The root cause of all this is an inconsistent definition of _GNU_SOURCE,
so I move the definition into the Makefile so that it is passed to all
invocations of the compiler and used uniformly for all system header
files.  All other #define and #undef of _GNU_SOURCE are removed as they
cause conflicts with the definition passed to the compiler.
All the features.h definitions (_LARGEFILE64_SOURCE _FILE_OFFSET_BITS=64
and _GNU_SOURCE) are needed by the python glue code too, so they are
moved to BASIC_CFLAGS, and the misleading comments about BASIC_CFLAGS
are removed.
This gives me a clean build on x86_64 (fc12) and mips (Debian).
Cc: David Daney <david.daney@cavium.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Joerg Roedel <joerg.roedel@amd.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1326836461-11952-1-git-send-email-ddaney.cavm@gmail.com
Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									d0caf29250
								
							
						
					
					
						commit
						0a84f007f9
					
				
					 8 changed files with 3 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -104,7 +104,7 @@ endif
 | 
			
		|||
 | 
			
		||||
CFLAGS = -fno-omit-frame-pointer -ggdb3 -Wall -Wextra -std=gnu99 $(CFLAGS_WERROR) $(CFLAGS_OPTIMIZE) -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
 | 
			
		||||
EXTLIBS = -lpthread -lrt -lelf -lm
 | 
			
		||||
ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
 | 
			
		||||
ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
 | 
			
		||||
ALL_LDFLAGS = $(LDFLAGS)
 | 
			
		||||
STRIP ?= strip
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -168,10 +168,7 @@ endif
 | 
			
		|||
 | 
			
		||||
### --- END CONFIGURATION SECTION ---
 | 
			
		||||
 | 
			
		||||
# Those must not be GNU-specific; they are shared with perl/ which may
 | 
			
		||||
# be built by a different compiler. (Note that this is an artifact now
 | 
			
		||||
# but it still might be nice to keep that distinction.)
 | 
			
		||||
BASIC_CFLAGS = -Iutil/include -Iarch/$(ARCH)/include
 | 
			
		||||
BASIC_CFLAGS = -Iutil/include -Iarch/$(ARCH)/include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
 | 
			
		||||
BASIC_LDFLAGS =
 | 
			
		||||
 | 
			
		||||
# Guard against environment variables
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,6 @@
 | 
			
		|||
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
#define _GNU_SOURCE
 | 
			
		||||
#include <sys/utsname.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -31,7 +30,6 @@
 | 
			
		|||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
 | 
			
		||||
#undef _GNU_SOURCE
 | 
			
		||||
#include "perf.h"
 | 
			
		||||
#include "builtin.h"
 | 
			
		||||
#include "util/util.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,6 @@
 | 
			
		|||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define _GNU_SOURCE
 | 
			
		||||
#include <sys/utsname.h>
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/stat.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -33,7 +32,6 @@
 | 
			
		|||
#include <limits.h>
 | 
			
		||||
#include <elf.h>
 | 
			
		||||
 | 
			
		||||
#undef _GNU_SOURCE
 | 
			
		||||
#include "util.h"
 | 
			
		||||
#include "event.h"
 | 
			
		||||
#include "string.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,3 @@
 | 
			
		|||
#define _GNU_SOURCE
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
#include <dirent.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,14 +21,13 @@
 | 
			
		|||
 *  The parts for function graph printing was taken and modified from the
 | 
			
		||||
 *  Linux Kernel that were written by Frederic Weisbecker.
 | 
			
		||||
 */
 | 
			
		||||
#define _GNU_SOURCE
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
 | 
			
		||||
#undef _GNU_SOURCE
 | 
			
		||||
#include "../perf.h"
 | 
			
		||||
#include "util.h"
 | 
			
		||||
#include "trace-event.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,4 @@
 | 
			
		|||
#define _GNU_SOURCE
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#undef _GNU_SOURCE
 | 
			
		||||
#include "../libslang.h"
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,3 @@
 | 
			
		|||
#define _GNU_SOURCE
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,7 +40,6 @@
 | 
			
		|||
#define decimal_length(x)	((int)(sizeof(x) * 2.56 + 0.5) + 1)
 | 
			
		||||
 | 
			
		||||
#define _ALL_SOURCE 1
 | 
			
		||||
#define _GNU_SOURCE 1
 | 
			
		||||
#define _BSD_SOURCE 1
 | 
			
		||||
#define HAS_BOOL
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue