[DynInst_API:] dyninst_proccontrol branch not building on i686 fedora 17


Date: Mon, 16 Jul 2012 12:07:04 -0400
From: William Cohen <wcohen@xxxxxxxxxx>
Subject: [DynInst_API:] dyninst_proccontrol branch not building on i686 fedora 17
Hi Matt,

I have been mainly working on x86_64 for fedora 17.  However, when I try to build the current checkout of dyninst from the dyninst_proccontrol branch on i686 the build fails on dwarfExpr.C.  Do the normal configure and build with:

./configure
make VERBOSE_COMPILATION=1 DONT_BUILD_NEWTESTSUITE=1 all StackwalkerAPI 

The tail of the build out is the following:

Compiling ../src/dwarfExpr.C
g++ -c  -I../h -I. -I../.. -I../../dynutil/h -I../../external -I../i386-unknown-linux2.4 -I../src -I../h -I../../instructionAPI/h -I/usr/include/libxml2 -Darch_x86 -Dos_linux  -Dcap_ptrace -Dcap_relocation -Dcap_stripped_binaries -Dcap_async_events -Dcap_threads -Dcap_dynamic_heap -Dcap_dwarf -Dcap_liveness -Dcap_fixpoint_gen -Dcap_noaddr_gen -Dcap_mutatee_traps -Dcap_instruction_api -Dcap_serialization -Dcap_binary_rewriter -Dcap_virtual_registers -Dcap_cache_func_starts -Dcap_instruction_replacement -Dcap_tramp_liveness -Dcap_thread_db -Dcap_liberty -Ddwarf_has_setframe -Dbug_syscall_changepc_rewind -Di386_unknown_linux2_0 -DPACKAGE_NAME=\"Dyninst\" -DPACKAGE_TARNAME=\"dyninst\" -DPACKAGE_VERSION=\"8.0\" -DPACKAGE_STRING=\"Dyninst\ 8.0\" -DPACKAGE_BUGREPORT=\"bugs@xxxxxxxxxxx\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIBE!
 LF=1 -DHAV
E_LIBDWARF=1 -DHAVE_LIBTHREAD_DB=1 -Dcap_have_libxml=1 -DHAVE_LIBXML2=1 -DHAVE_LIBFL=1 -O2  -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS  -fimplicit-templates -g -D_REENTRANT=1 -Dcap_mmtimer -fPIC -Dlibcommon -DCOMPONENT_NAME=common  -W -Wall -Wpointer-arith -Wcast-qual -Woverloaded-virtual -Wcast-align -Wno-non-template-friend  -pthread  ../src/dwarfExpr.C -o dwarfExpr.o
../src/dwarfExpr.C:42:17: error: ‘common’ is not a namespace-name
../src/dwarfExpr.C:42:31: error: expected namespace-name before ‘;’ token
../src/dwarfExpr.C:44:15: error: ‘Dyninst::common’ has not been declared
../src/dwarfExpr.C:44:53: error: ‘Dwarf_Locdesc’ was not declared in this scope
../src/dwarfExpr.C:44:68: error: ‘dwlocs’ was not declared in this scope
../src/dwarfExpr.C:45:53: error: expected primary-expression before ‘long’
../src/dwarfExpr.C:46:70: error: expected primary-expression before ‘*’ token
../src/dwarfExpr.C:46:71: error: ‘loc’ was not declared in this scope
../src/dwarfExpr.C:46:76: error: expected primary-expression before ‘bool’
../src/dwarfExpr.C:47:67: error: expected primary-expression before ‘*’ token
../src/dwarfExpr.C:47:68: error: ‘reader’ was not declared in this scope
../src/dwarfExpr.C:48:75: error: expected primary-expression before ‘arch’
../src/dwarfExpr.C:49:53: error: expected primary-expression before ‘long’
../src/dwarfExpr.C:49:73: error: expression list treated as compound expression in initializer [-fpermissive]
../src/dwarfExpr.C:50:1: error: expected ‘,’ or ‘;’ before ‘{’ token
make[1]: *** [dwarfExpr.o] Error 1
make[1]: Leaving directory `/home/wcohen/dyninst/dyninstfans/common/i386-unknown-linux2.4'
make: *** [common] Error 2

It looks like the common/i386-unknown-linux2.4/Makefile needs to be updated to something similar to the x86_64-unknown-linux2.4/Makefile. Maybe something similar to the attached patch.

-Will


diff --git a/common/i386-unknown-linux2.4/Makefile b/common/i386-unknown-linux2.4/Makefile
index d92aedc..9663864 100644
--- a/common/i386-unknown-linux2.4/Makefile
+++ b/common/i386-unknown-linux2.4/Makefile
@@ -4,14 +4,8 @@
 
 # Define any symbols needed to invoke configuration changes in make.config
 
-#USES_SHM_SAMPLING = true
-#USES_PAPI = true
-DEBUG_FLAG = -g
 NO_IMPLICIT_TEMPLATES = true
 
-# For debugging.
-#NO_OPT_FLAG = true
-
 # Include standard make configuration stuff that applies to everything
 # in the paradyn tree.
 
@@ -24,35 +18,18 @@ SRCS =		../../common/src/linuxKludges.C \
 		../../common/src/parseauxv.C \
 		../../common/src/addrtranslate-sysv.C \
 		../../common/src/addrtranslate-auxv.C \
-		../../common/src/addrtranslate-linux.C \
-		../../common/src/dwarfExpr.C
-
-#MYFLAGS	+= -DNO_MDL_PRINT
-#MYFLAGS	+= -DLD_DEBUG
-#MYFLAGS	+= -DATTACH_DETACH_DEBUG
-#MYFLAGS	+= -DPTRACEDEBUG
-#MYFLAGS	+= -DPTRACEDEBUG_EXCESSIVE
-#MYFLAGS	+= -DPTRACEDEBUG_ALWAYS
-#MYFLAGS	+= -DINST_TRAP_DEBUG
-#MYFLAGS	+= -DSIGNAL_DEBUG
-#MYFLAGS	+= -DASTDEBUG
-#MYFLAGS	+= -DINFERIOR_RPC_DEBUG
+		../../common/src/addrtranslate-linux.C
 
 CXXFLAGS        += $(MYFLAGS)
 CFLAGS          += $(MYFLAGS)
 TFLAGS          += $(MYFLAGS)
 
-# Tradeoff: adding -g to TFLAGS aids gdb but uses gobs of disk space
-#TFLAGS		+= -g
-
 LIBS    += -ldl
 
 AS		= /usr/bin/as
 
-
 # Add preprocessor and special link information for G++
-G_PTHREAD	= -pthread
-G_PTHREAD_LD	= -pthread
+G_PTHREAD       = -pthread
 
 # Include the module-specific Makefile, which defines everything about
 # the module that is common across architectures.
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] dyninst_proccontrol branch not building on i686 fedora 17, William Cohen <=