mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
level things. But they're all over the place. This commits moves them all to the new docs/internals/ directory, and gives them a consistent naming scheme. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4196
208 lines
4.7 KiB
Makefile
208 lines
4.7 KiB
Makefile
include $(top_srcdir)/Makefile.all.am
|
|
include $(top_srcdir)/Makefile.core-AM_CPPFLAGS.am
|
|
|
|
MODULES = \
|
|
m_aspacemgr \
|
|
m_debuginfo \
|
|
m_demangle \
|
|
m_dispatch \
|
|
m_replacemalloc \
|
|
m_scheduler \
|
|
m_sigframe \
|
|
m_syswrap
|
|
|
|
## When building, we are only interested in the current arch/OS/platform.
|
|
## But when doing 'make dist', we are interested in every arch/OS/platform.
|
|
## That's what DIST_SUBDIRS specifies.
|
|
SUBDIRS = $(MODULES) .
|
|
|
|
DIST_SUBDIRS = $(MODULES) .
|
|
|
|
AM_CPPFLAGS += -DVG_LIBDIR="\"$(valdir)"\" \
|
|
-DKICKSTART_BASE=@KICKSTART_BASE@
|
|
|
|
default.supp: $(SUPP_FILES)
|
|
|
|
bin_PROGRAMS = \
|
|
valgrind
|
|
|
|
val_PROGRAMS = \
|
|
stage2 \
|
|
vg_preload_core.so
|
|
|
|
noinst_HEADERS = \
|
|
coregrind.h \
|
|
pub_core_aspacemgr.h \
|
|
pub_core_basics.h \
|
|
pub_core_cpuid.h \
|
|
pub_core_debuginfo.h \
|
|
pub_core_debugger.h \
|
|
pub_core_debuglog.h \
|
|
pub_core_demangle.h \
|
|
pub_core_dispatch.h \
|
|
pub_core_dispatch_asm.h \
|
|
pub_core_errormgr.h \
|
|
pub_core_execontext.h \
|
|
pub_core_hashtable.h \
|
|
pub_core_libcbase.h \
|
|
pub_core_libcassert.h \
|
|
pub_core_libcfile.h \
|
|
pub_core_libcmman.h \
|
|
pub_core_libcprint.h \
|
|
pub_core_libcproc.h \
|
|
pub_core_libcsignal.h \
|
|
pub_core_machine.h \
|
|
pub_core_main.h \
|
|
pub_core_mallocfree.h \
|
|
pub_core_options.h \
|
|
pub_core_profile.h \
|
|
pub_core_pthreadmodel.h \
|
|
pub_core_redir.h \
|
|
pub_core_replacemalloc.h\
|
|
pub_core_scheduler.h \
|
|
pub_core_sigframe.h \
|
|
pub_core_signals.h \
|
|
pub_core_skiplist.h \
|
|
pub_core_stacks.h \
|
|
pub_core_stacktrace.h \
|
|
pub_core_syscall.h \
|
|
pub_core_syswrap.h \
|
|
pub_core_threadmodel.h \
|
|
pub_core_threadstate.h \
|
|
pub_core_tooliface.h \
|
|
pub_core_trampoline.h \
|
|
pub_core_translate.h \
|
|
pub_core_transtab.h \
|
|
pub_core_transtab_asm.h \
|
|
pub_core_ume.h \
|
|
vki_unistd.h \
|
|
vki_unistd-amd64-linux.h\
|
|
vki_unistd-ppc32-linux.h\
|
|
vki_unistd-x86-linux.h
|
|
|
|
BUILT_SOURCES = stage2.lds
|
|
CLEANFILES = stage2.lds
|
|
|
|
valgrind_SOURCES = \
|
|
stage1.c \
|
|
m_debuglog.c \
|
|
m_ume.c
|
|
valgrind_DEPENDENCIES =
|
|
valgrind_LDFLAGS=-static -g
|
|
valgrind_LDADD=
|
|
|
|
stage2_SOURCES = \
|
|
m_cpuid.S \
|
|
m_debugger.c \
|
|
m_debuglog.c \
|
|
m_errormgr.c \
|
|
m_execontext.c \
|
|
m_hashtable.c \
|
|
m_libcbase.c \
|
|
m_libcassert.c \
|
|
m_libcfile.c \
|
|
m_libcmman.c \
|
|
m_libcprint.c \
|
|
m_libcproc.c \
|
|
m_libcsignal.c \
|
|
m_machine.c \
|
|
m_main.c \
|
|
m_mallocfree.c \
|
|
m_options.c \
|
|
m_profile.c \
|
|
m_pthreadmodel.c \
|
|
m_redir.c \
|
|
m_signals.c \
|
|
m_skiplist.c \
|
|
m_stacks.c \
|
|
m_stacktrace.c \
|
|
m_syscall.c \
|
|
m_threadmodel.c \
|
|
m_threadstate.c \
|
|
m_tooliface.c \
|
|
m_trampoline.S \
|
|
m_translate.c \
|
|
m_transtab.c \
|
|
m_ume.c
|
|
|
|
## Nb: libscheduler.a must precede libdispatch.a in this list.
|
|
stage2_extra= \
|
|
m_debuginfo/libdebuginfo.a \
|
|
m_demangle/libdemangle.a \
|
|
m_scheduler/libscheduler.a \
|
|
m_dispatch/libdispatch.a \
|
|
m_aspacemgr/libaspacemgr.a \
|
|
m_sigframe/libsigframe.a \
|
|
m_syswrap/libsyswrap.a \
|
|
@VEX_DIR@/libvex.a
|
|
|
|
## These ones must be linked in with the --whole-archive flag, because they
|
|
## wouldn't get pulled into stage2 otherwise (because they contain symbols
|
|
## only referred to by tool shared objects).
|
|
stage2_extra2 = \
|
|
m_replacemalloc/libreplacemalloc_core.a
|
|
|
|
## Nb: older versions of automake don't seem to like having += within an
|
|
## if-then-else, so we have to use these variables for the common parts.
|
|
st2_DEPS_common = \
|
|
$(stage2_extra) \
|
|
$(stage2_extra2)
|
|
|
|
st2_LDFLAGS_common = \
|
|
-Wl,--export-dynamic -g \
|
|
-Wl,--whole-archive $(stage2_extra2) -Wl,--no-whole-archive
|
|
|
|
if USE_PIE
|
|
stage2_DEPENDENCIES = $(st2_DEPS_common)
|
|
stage2_LDFLAGS = \
|
|
$(st2_LDFLAGS_common) \
|
|
-pie
|
|
else
|
|
stage2_DEPENDENCIES = $(st2_DEPS_common) stage2.lds
|
|
stage2_LDFLAGS = \
|
|
$(st2_LDFLAGS_common) \
|
|
-Wl,-defsym,kickstart_base=@KICKSTART_BASE@ -Wl,-T,stage2.lds
|
|
endif
|
|
|
|
stage2_LDADD= $(stage2_extra) \
|
|
-ldl
|
|
|
|
vg_preload_core_so_SOURCES = vg_preloaded.c
|
|
vg_preload_core_so_CFLAGS = $(AM_CFLAGS) -fpic
|
|
vg_preload_core_so_LDADD = -ldl
|
|
vg_preload_core_so_LDFLAGS = \
|
|
-shared \
|
|
-Wl,--soname,vg_preload_core.so \
|
|
-Wl,-z,initfirst
|
|
|
|
# Extract ld's default linker script and hack it to our needs.
|
|
# First we cut everything above and below the "=====..." lines at the top
|
|
# and bottom.
|
|
# Then we have to replace the load address with "kickstart_base".
|
|
# The line to replace in has one of the following two forms:
|
|
#
|
|
# . = 0x08048000 + SIZEOF_HEADERS;
|
|
#
|
|
# or
|
|
# PROVIDE (__executable_start = 0x08048000); . = 0x08048000 + SIZEOF_HEADERS;
|
|
#
|
|
# So we search for the line with a hex value "+ SIZEOF_HEADERS", and replace
|
|
# all the hex values in that line with "kickstart_base".
|
|
stage2.lds: Makefile
|
|
$(CC) -Wl,--verbose -nostdlib 2>&1 | sed \
|
|
-e '1,/^=====\+$$/d' \
|
|
-e '/^=====\+$$/d' \
|
|
-e '/\. = 0x[0-9A-Fa-f]\+ + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/kickstart_base/g' > $@ \
|
|
|| rm -f $@
|
|
|
|
MANUAL_DEPS = $(noinst_HEADERS) $(include_HEADERS)
|
|
|
|
all-local:
|
|
mkdir -p $(inplacedir)
|
|
for i in $(val_PROGRAMS); do \
|
|
to=$(inplacedir)/$$i; \
|
|
rm -f $$$to; \
|
|
ln -sf ../$(subdir)/$$i $$to; \
|
|
done
|
|
|