From 3ad1a0916972470ffc3f0a896f1719428f85f3a8 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Tue, 25 Mar 2014 22:08:31 +0000 Subject: [PATCH] Rather than require a makeoptions DEBUG to get debug correct, add it in kern.mk, but only if we're using clang. While this option is supported by both clang and gcc, in the future there may be changes to clang which change the defaults that require a tweak to build our kernel such that other tools in our tree will work. Set a good example by forcing -gdwarf-2 only for clang builds, and only if the user hasn't specified another dwarf level already. Update UPDATING to reflect the changed state of affairs. This also keeps us from having to update all the ARM kernels to add this, and also keeps us from in the future having to update all the MIPS kernels and is one less place the user will have to know to do something special for clang and one less thing developers will need to do when moving an architecture to clang. Reviewed by: ian@ MFC after: 1 week --- UPDATING | 19 ++++++++++++++----- sys/amd64/conf/GENERIC | 2 +- sys/conf/kern.mk | 7 +++++++ sys/i386/conf/GENERIC | 2 +- sys/i386/conf/XEN | 2 +- sys/sparc64/conf/GENERIC | 2 +- 6 files changed, 25 insertions(+), 9 deletions(-) diff --git a/UPDATING b/UPDATING index e5b1d55e478b..1af673cab87d 100644 --- a/UPDATING +++ b/UPDATING @@ -31,6 +31,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20140325: + It is no longer necessary to include the dwarf version in your DEBUG + options in your kernel config file. The bug that required it to be + placed in the config file has bene fixed. DEBUG should now just + contain -g. The build system will automatically update things + to do the right thing. Ignore the entry from 20140216. + 20140306: Support for libwrap (TCP wrappers) in rpcbind was disabled by default to improve performance. To re-enable it, if needed, run rpcbind @@ -44,16 +51,18 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW: to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. 20140216: - Clang and llvm have been upgraded to 3.4 release. Please note that - clang 3.4 now defaults to DWARF4 debug information format when you - specify -g. Since kgdb(1) only supports DWARF2, you should update any - customized kernel configurations which include debug information to - explicitly use -gdwarf-2, e.g: + Clang and llvm have been upgraded to 3.4 release. + + Please note that clang 3.4 now defaults to DWARF4 debug information + format when you specify -g. Since kgdb(1) only supports DWARF2, you + should update any customized kernel configurations which include debug + information to explicitly use -gdwarf-2, e.g: makeoptions DEBUG=-gdwarf-2 This has already been applied to the appropriate GENERIC configuration files, so if you inherit from those, no changes are required. + Please note: this bug has been fixed, please see 20140325. 20140216: The nve(4) driver has been removed. Please use the nfe(4) driver diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index cf18f2dede4c..84031d985a92 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -21,7 +21,7 @@ cpu HAMMER ident GENERIC -makeoptions DEBUG=-gdwarf-2 # Build kernel with gdb(1) debug symbols +makeoptions DEBUG=-g makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support options SCHED_ULE # ULE scheduler diff --git a/sys/conf/kern.mk b/sys/conf/kern.mk index a166a11a249e..6b8a3ddb93c8 100644 --- a/sys/conf/kern.mk +++ b/sys/conf/kern.mk @@ -162,3 +162,10 @@ CFLAGS+= -ffreestanding ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" CFLAGS+= -fstack-protector .endif + +# +# Add -gdwarf-2 when compiling -g +# +.if ${COMPILER_TYPE} == "clang" && ${CFLAGS:M-g} != "" && ${CFLAGS:M-gdwarf} == "" +CFLAGS+= -gdwarf-2 +.endif diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC index abe1d3237b75..2a9cff3ef3be 100644 --- a/sys/i386/conf/GENERIC +++ b/sys/i386/conf/GENERIC @@ -23,7 +23,7 @@ cpu I586_CPU cpu I686_CPU ident GENERIC -makeoptions DEBUG=-gdwarf-2 # Build kernel with gdb(1) debug symbols +makeoptions DEBUG=-g makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support options SCHED_ULE # ULE scheduler diff --git a/sys/i386/conf/XEN b/sys/i386/conf/XEN index f785c340f985..29939b42a79b 100644 --- a/sys/i386/conf/XEN +++ b/sys/i386/conf/XEN @@ -6,7 +6,7 @@ cpu I686_CPU ident XEN -makeoptions DEBUG=-gdwarf-2 # Build kernel with gdb(1) debug symbols +makeoptions DEBUG=-g makeoptions WITHOUT_MODULES="aha ahb amd ctl cxgb dpt drm drm2 hptnr hptmv ida malo mps mwl rdma sound sym trm xfs" options SCHED_ULE # ULE scheduler diff --git a/sys/sparc64/conf/GENERIC b/sys/sparc64/conf/GENERIC index bb3fa9aba3f1..24d54a38e89b 100644 --- a/sys/sparc64/conf/GENERIC +++ b/sys/sparc64/conf/GENERIC @@ -21,7 +21,7 @@ cpu SUN4U ident GENERIC -makeoptions DEBUG=-gdwarf-2 # Build kernel with gdb(1) debug symbols +makeoptions DEBUG=-g # Platforms supported # At this time all platforms are supported, as-is.