Skip to content

Commit

Permalink
WIP: Try detecting undefined behavior with -fsanitize-undefined
Browse files Browse the repository at this point in the history
DEBUG ONLY
  • Loading branch information
mvidner committed Mar 3, 2015
1 parent f58f1bb commit d496cfa
Show file tree
Hide file tree
Showing 24 changed files with 37 additions and 21 deletions.
4 changes: 2 additions & 2 deletions agent-any/src/Makefile.am
Expand Up @@ -11,13 +11,13 @@ liby2ag_anyagent_la_SOURCES = \
AnyAgent.cc AnyAgent.h \
AnyAgentBasic.cc \
AnyAgentComplex.cc
liby2ag_anyagent_la_LDFLAGS = -version-info 2:0
liby2ag_anyagent_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
liby2ag_anyagent_la_LIBADD = @AGENT_LIBADD@

libpy2ag_anyagent_la_SOURCES = \
$(liby2ag_anyagent_la_SOURCES) \
Y2CCAnyAgent.cc
libpy2ag_anyagent_la_LDFLAGS = -version-info 2:0
libpy2ag_anyagent_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
libpy2ag_anyagent_la_LIBADD = @AGENT_LIBADD@

AM_CPPFLAGS = @AGENT_INCLUDES@
1 change: 1 addition & 0 deletions agent-any/testsuite/Makefile.am
Expand Up @@ -19,6 +19,7 @@ runag_anyagent_SOURCES = runag_anyagent.cc
runag_anyagent_LDADD = ${AGENT_LIBADD}
# why is whole-archive necessary?
runag_anyagent_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-Xlinker --whole-archive \
../src/libpy2ag_anyagent.la \
-Xlinker --no-whole-archive
Expand Down
2 changes: 1 addition & 1 deletion agent-dummy/src/Makefile.am
Expand Up @@ -10,7 +10,7 @@ libpy2ag_dummy_la_SOURCES = \
DummyAgent.cc DummyAgent.h \
Y2CCDummyAgent.cc

libpy2ag_dummy_la_LDFLAGS = -version-info 2:0
libpy2ag_dummy_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
libpy2ag_dummy_la_LIBADD = @AGENT_LIBADD@

AM_CPPFLAGS = \
Expand Down
4 changes: 2 additions & 2 deletions agent-ini/src/Makefile.am
Expand Up @@ -17,14 +17,14 @@ liby2ag_ini_la_SOURCES = \
quotes.cc \
quotes.h

liby2ag_ini_la_LDFLAGS = -version-info 2:0
liby2ag_ini_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
liby2ag_ini_la_LIBADD = @AGENT_LIBADD@

libpy2ag_ini_la_SOURCES = \
$(liby2ag_ini_la_SOURCES) \
Y2CCIniAgent.cc

libpy2ag_ini_la_LDFLAGS = -version-info 2:0
libpy2ag_ini_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
libpy2ag_ini_la_LIBADD = \
@AGENT_LIBADD@ \
${Y2UTIL_LIBS}
Expand Down
1 change: 1 addition & 0 deletions agent-ini/testsuite/Makefile.am
Expand Up @@ -18,6 +18,7 @@ noinst_PROGRAMS = runag_ini
runag_ini_SOURCES = runag_ini.cc
runag_ini_LDADD = ${AGENT_LIBADD}
runag_ini_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-Xlinker --whole-archive \
$(top_builddir)/scr/src/libpy2scr.la \
$(top_builddir)/agent-system/src/libpy2ag_system.la \
Expand Down
4 changes: 2 additions & 2 deletions agent-modules/src/Makefile.am
Expand Up @@ -11,13 +11,13 @@ liby2ag_modules_la_SOURCES = \
ModulesConf.h ModulesConf.cc \
ModulesAgent.h ModulesAgent.cc \
Y2Logger.h
liby2ag_modules_la_LDFLAGS = -version-info 2:0
liby2ag_modules_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
liby2ag_modules_la_LIBADD = @AGENT_LIBADD@

libpy2ag_modules_la_SOURCES = \
$(liby2ag_modules_la_SOURCES) \
Y2CCModulesAgent.cc
libpy2ag_modules_la_LDFLAGS = -version-info 2:0
libpy2ag_modules_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
libpy2ag_modules_la_LIBADD = @AGENT_LIBADD@

AM_CPPFLAGS = ${AGENT_INCLUDES}
1 change: 1 addition & 0 deletions agent-modules/testsuite/Makefile.am
Expand Up @@ -18,6 +18,7 @@ noinst_PROGRAMS = runmodules
runmodules_SOURCES = runmodules.cc
runmodules_LDADD = ${AGENT_LIBADD}
runmodules_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-Xlinker --whole-archive \
../src/libpy2ag_modules.la \
-Xlinker --no-whole-archive
Expand Down
4 changes: 2 additions & 2 deletions agent-process/src/Makefile.am
Expand Up @@ -11,13 +11,13 @@ liby2ag_process_la_SOURCES = \
ProcessAgent.cc \
ProcessAgent.h

liby2ag_process_la_LDFLAGS = -version-info 2:0
liby2ag_process_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
liby2ag_process_la_LIBADD = @AGENT_LIBADD@

libpy2ag_process_la_SOURCES = \
$(liby2ag_process_la_SOURCES) \
Y2CCProcessAgent.cc
libpy2ag_process_la_LDFLAGS = -version-info 2:0
libpy2ag_process_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
libpy2ag_process_la_LIBADD = @AGENT_LIBADD@

AM_CPPFLAGS = @AGENT_INCLUDES@
1 change: 1 addition & 0 deletions agent-process/testsuite/Makefile.am
Expand Up @@ -19,6 +19,7 @@ noinst_PROGRAMS = run_ag_process
run_ag_process_SOURCES = run_ag_process.cc
run_ag_process_LDADD = ${AGENT_LIBADD}
run_ag_process_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-Xlinker --whole-archive \
../src/libpy2ag_process.la \
-Xlinker --no-whole-archive
2 changes: 1 addition & 1 deletion agent-resolver/src/Makefile.am
Expand Up @@ -9,7 +9,7 @@ libpy2ag_resolver_la_SOURCES = \
ResolverAgent.h \
Y2CCResolverAgent.cc

libpy2ag_resolver_la_LDFLAGS = -version-info 2:0
libpy2ag_resolver_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
libpy2ag_resolver_la_LIBADD = @AGENT_LIBADD@

AM_CPPFLAGS = ${AGENT_INCLUDES}
1 change: 1 addition & 0 deletions agent-resolver/testsuite/Makefile.am
Expand Up @@ -16,6 +16,7 @@ noinst_PROGRAMS = runresolver
runresolver_SOURCES = runresolver.cc
runresolver_LDADD = ${AGENT_LIBADD}
runresolver_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-Xlinker --whole-archive \
../src/libpy2ag_resolver.la \
-Xlinker --no-whole-archive
Expand Down
2 changes: 1 addition & 1 deletion agent-system/src/Makefile.am
Expand Up @@ -11,7 +11,7 @@ libpy2ag_system_la_SOURCES = \
ShellCommand.cc ShellCommand.h \
SystemAgent.cc SystemAgent.h

libpy2ag_system_la_LDFLAGS = -version-info 2:0
libpy2ag_system_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
libpy2ag_system_la_LIBADD = @AGENT_LIBADD@

AM_CPPFLAGS = @AGENT_INCLUDES@
1 change: 1 addition & 0 deletions agent-system/testsuite/Makefile.am
Expand Up @@ -19,6 +19,7 @@ noinst_PROGRAMS = runag_system
runag_system_SOURCES = runag_system.cc
runag_system_LDADD = ${AGENT_LIBADD}
runag_system_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-Xlinker --whole-archive \
../src/libpy2ag_system.la \
-Xlinker --no-whole-archive
1 change: 1 addition & 0 deletions base/src/Makefile.am
Expand Up @@ -26,6 +26,7 @@ y2base_DEPENDENCIES = $(YAST2CORE)
y2base_LDADD = ${Y2UTIL_LIBS}

y2base_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-Xlinker --whole-archive \
$(PERL_LDFLAGS) \
$(YAST2CORE) \
Expand Down
4 changes: 3 additions & 1 deletion base/tools/tty_wrapper/Makefile.am
Expand Up @@ -12,4 +12,6 @@ tty_wrapper_CPPFLAGS = $(AM_CPPFLAGS)

tty_wrapper_LDADD = -ly2util

tty_wrapper_LDFLAGS = -L$(srcdir)/../../../liby2util-r/src -L$(libdir)
tty_wrapper_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-L$(srcdir)/../../../liby2util-r/src -L$(libdir)
7 changes: 6 additions & 1 deletion configure.in.in
Expand Up @@ -48,12 +48,17 @@ AGENT_LIBADD='dnl
$(top_builddir)/liby2/src/liby2.la dnl
${Y2UTIL_LIBS}'

# https://bugzilla.novell.com/show_bug.cgi?id=914255
SANITIZER_CFLAGS=-fsanitize=undefined
SANITIZER_LDFLAGS=-Wl,$SANITIZER_CFLAGS
AC_SUBST(SANITIZER_LDFLAGS)

AC_PROG_CXX

# gnu++0x instead of c++0x so that
# we do not lose gnu extensions like typeof
# FIXME: rename to Y2CORE_CXXFLAGS and change in devtools:y2autoconf
Y2CORE_CFLAGS="-std=gnu++0x"
Y2CORE_CFLAGS="-std=gnu++0x $SANITIZER_CFLAGS"
AC_SUBST(Y2CORE_CFLAGS) dnl included in CXXFLAGS in YAST2-CHECKS-PROGRAM

AC_CHECK_HEADERS(xcrypt.h)
Expand Down
2 changes: 1 addition & 1 deletion libscr/src/Makefile.am
Expand Up @@ -17,4 +17,4 @@ AM_CPPFLAGS = \
-I$(srcdir)/include \
${Y2UTIL_CFLAGS}

libscr_la_LDFLAGS = -version-info 3:0
libscr_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 3:0
4 changes: 2 additions & 2 deletions liby2/src/Makefile.am
Expand Up @@ -22,13 +22,13 @@ liby2_la_SOURCES = \
Y2PluginComponent.cc Y2CCPlugin.cc \
Y2StdioComponent.cc Y2CCStdio.cc

liby2_la_LDFLAGS = -version-info 4:0
liby2_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 4:0
# pthread added (74501)
liby2_la_LIBADD = ${Y2UTIL_LIBS} -lutil -ldl -lpthread

libpy2serial_la_SOURCES = \
Y2SerialComponent.cc Y2CCSerial.cc
libpy2serial_la_LDFLAGS = -version-info 2:0
libpy2serial_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0

AM_CPPFLAGS = \
-I$(srcdir)/../../libycp/src/include \
Expand Down
2 changes: 1 addition & 1 deletion liby2util-r/src/Makefile.am
Expand Up @@ -24,6 +24,6 @@ liby2util_la_SOURCES = \
y2changes.cc \
Process.cc

liby2util_la_LDFLAGS = -version-info 5:0:0
liby2util_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 5:0:0

liby2util_la_LIBADD = -lutil
1 change: 1 addition & 0 deletions liby2util-r/testsuite/Makefile.am
Expand Up @@ -9,6 +9,7 @@ export Y2DISABLELANGUAGEPLUGINS = 1
AM_CPPFLAGS = -I$(srcdir)/../src/include -DY2LOG=\"liby2util-testsuite\"

AM_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-Xlinker --whole-archive \
$(srcdir)/../src/liby2util.la \
-Xlinker --no-whole-archive
Expand Down
4 changes: 2 additions & 2 deletions libycp/src/Makefile.am
Expand Up @@ -64,10 +64,10 @@ AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/include/ycp -I$(top_srcdir)/liby2/
-I$(top_srcdir)/debugger

# CURRENT:REVISION:AGE
libycpvalues_la_LDFLAGS = -version-info 6:0:0
libycpvalues_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 6:0:0
libycpvalues_la_LIBADD = ${Y2UTIL_LIBS}

libycp_la_LDFLAGS = -version-info 5:0:0
libycp_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 5:0:0
libycp_la_LIBADD = ${Y2UTIL_LIBS} ${CRYPTO_LIBS} libycpvalues.la $(top_builddir)/debugger/liby2debug.la

CLEANFILES = parser.output parser.cc scanner.cc $(BUILT_SOURCES)
Expand Down
2 changes: 1 addition & 1 deletion scr/src/Makefile.am
Expand Up @@ -14,7 +14,7 @@ libpy2scr_la_SOURCES = \
ScriptingAgent.cc ScriptingAgent.h \
SCRSubAgent.cc SCRSubAgent.h

libpy2scr_la_LDFLAGS = -version-info 2:0
libpy2scr_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0

libpy2scr_la_LIBADD = $(top_builddir)/libscr/src/libscr.la

Expand Down
1 change: 1 addition & 0 deletions scr/testsuite/Makefile.am
Expand Up @@ -18,6 +18,7 @@ noinst_PROGRAMS = runscr
runscr_SOURCES = runscr.cc
runscr_LDADD = ${AGENT_LIBADD}
runscr_LDFLAGS = \
${SANITIZER_LDFLAGS} \
-Xlinker --whole-archive \
$(top_builddir)/agent-dummy/src/libpy2ag_dummy.la \
../src/libpy2scr.la \
Expand Down
2 changes: 1 addition & 1 deletion wfm/src/Makefile.am
Expand Up @@ -15,7 +15,7 @@ libpy2wfm_la_SOURCES = \


# use this for KMTrace: libpy2wfm_la_LIBADD = liby2wfm.la /opt/kde3/lib/libktrace_s.a
libpy2wfm_la_LDFLAGS = -version-info 2:0
libpy2wfm_la_LDFLAGS = ${SANITIZER_LDFLAGS} -version-info 2:0
libpy2wfm_la_LIBADD = \
../../scr/src/libpy2scr.la \
../../libscr/src/libscr.la \
Expand Down

0 comments on commit d496cfa

Please sign in to comment.