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