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
This commit is contained in:
Warner Losh 2014-03-25 22:08:31 +00:00
parent 153edc50d7
commit 3ad1a09169
6 changed files with 25 additions and 9 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.