Home | History | Annotate | Download | only in main
      1 
      2 SUBDIRS = . tests
      3 
      4 include $(top_srcdir)/Makefile.all.am
      5 
      6 #----------------------------------------------------------------------------
      7 # <tool>-<platform> stuff
      8 #----------------------------------------------------------------------------
      9 
     10 TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@ = \
     11 	$(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a \
     12 	$(top_builddir)/VEX/libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
     13 if VGCONF_HAVE_PLATFORM_SEC
     14 TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@ = \
     15 	$(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \
     16 	$(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
     17 endif
     18 
     19 
     20 TOOL_LDADD_COMMON = -lgcc
     21 TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \
     22 	$(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) $(TOOL_LDADD_COMMON)
     23 if VGCONF_HAVE_PLATFORM_SEC
     24 TOOL_LDADD_@VGCONF_PLATFORM_SEC_CAPS@ = \
     25 	$(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@) $(TOOL_LDADD_COMMON)
     26 endif
     27 
     28 
     29 # -Wl,--build-id=none is needed when linking tools with a linker that only
     30 # knows -Ttext and not -Ttext-segment. Without this flag newer ld versions
     31 # (2.20 and later) create a .note.gnu.build-id at the default text segment
     32 # address, which of course means the resulting executable
     33 # is unusable. So we have to tell ld not to generate that, with
     34 # --build-id=none unless the linker supports -Ttext-segment.
     35 TOOL_LDFLAGS_COMMON_LINUX = \
     36 	-static -nodefaultlibs -nostartfiles -u _start @FLAG_NO_BUILD_ID@
     37 TOOL_LDFLAGS_COMMON_DARWIN = \
     38 	-nodefaultlibs -nostartfiles -Wl,-u,__start -Wl,-e,__start
     39 
     40 TOOL_LDFLAGS_X86_LINUX = \
     41 	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
     42 
     43 TOOL_LDFLAGS_AMD64_LINUX = \
     44 	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
     45 
     46 TOOL_LDFLAGS_PPC32_LINUX = \
     47 	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
     48 
     49 TOOL_LDFLAGS_PPC64_LINUX = \
     50 	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
     51 
     52 TOOL_LDFLAGS_ARM_LINUX = \
     53 	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
     54 
     55 TOOL_LDFLAGS_ARM64_LINUX = \
     56 	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
     57 
     58 TOOL_LDFLAGS_S390X_LINUX = \
     59 	$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
     60 
     61 TOOL_LDFLAGS_X86_DARWIN = \
     62 	$(TOOL_LDFLAGS_COMMON_DARWIN) -arch i386
     63 
     64 TOOL_LDFLAGS_AMD64_DARWIN = \
     65 	$(TOOL_LDFLAGS_COMMON_DARWIN) -arch x86_64
     66 
     67 # MIPS Linux default start symbol is __start, not _start like on x86 or amd
     68 TOOL_LDFLAGS_MIPS32_LINUX = \
     69 	-static -nodefaultlibs -nostartfiles -u __start @FLAG_NO_BUILD_ID@ \
     70 	@FLAG_M32@
     71 
     72 TOOL_LDFLAGS_MIPS64_LINUX = \
     73 	-static -nodefaultlibs -nostartfiles -u __start @FLAG_NO_BUILD_ID@ \
     74 	@FLAG_M64@
     75 
     76 # On Android we must ask for non-executable stack, not sure why.
     77 if VGCONF_PLATFORMS_INCLUDE_ARM_LINUX
     78 if VGCONF_PLATVARIANT_IS_ANDROID
     79 TOOL_LDFLAGS_ARM_LINUX += -Wl,-z,noexecstack
     80 endif
     81 endif
     82 
     83 # NB for 64-bit darwin.  We may want to set -Wl,-pagezero_size to
     84 # something smaller than the default of 4G, so as to facilitate
     85 # loading clients who are also linked thusly (currently m_ume.c
     86 # will fail to load them).  Although such setting is probably
     87 # better done in link_tool_exe.c.
     88 #
     89 #	-Wl,-pagezero_size,0x100000000
     90 
     91 
     92 #----------------------------------------------------------------------------
     93 # vgpreload_<tool>-<platform>.a stuff
     94 #----------------------------------------------------------------------------
     95 
     96 LIBREPLACEMALLOC_X86_LINUX = \
     97 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-x86-linux.a
     98 
     99 LIBREPLACEMALLOC_AMD64_LINUX = \
    100 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-amd64-linux.a
    101 
    102 LIBREPLACEMALLOC_PPC32_LINUX = \
    103 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc32-linux.a
    104 
    105 LIBREPLACEMALLOC_PPC64_LINUX = \
    106 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
    107 
    108 LIBREPLACEMALLOC_ARM_LINUX = \
    109 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
    110 
    111 LIBREPLACEMALLOC_ARM64_LINUX = \
    112 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm64-linux.a
    113 
    114 LIBREPLACEMALLOC_X86_DARWIN = \
    115 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-x86-darwin.a
    116 
    117 LIBREPLACEMALLOC_AMD64_DARWIN = \
    118 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-amd64-darwin.a
    119 
    120 LIBREPLACEMALLOC_S390X_LINUX = \
    121 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-s390x-linux.a
    122 
    123 LIBREPLACEMALLOC_MIPS32_LINUX = \
    124 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-mips32-linux.a
    125 
    126 LIBREPLACEMALLOC_MIPS64_LINUX = \
    127 	$(top_builddir)/coregrind/libreplacemalloc_toolpreload-mips64-linux.a
    128 
    129 LIBREPLACEMALLOC_LDFLAGS_X86_LINUX = \
    130 	-Wl,--whole-archive \
    131 	$(LIBREPLACEMALLOC_X86_LINUX) \
    132 	-Wl,--no-whole-archive
    133 
    134 LIBREPLACEMALLOC_LDFLAGS_AMD64_LINUX = \
    135 	-Wl,--whole-archive \
    136 	$(LIBREPLACEMALLOC_AMD64_LINUX) \
    137 	-Wl,--no-whole-archive
    138 
    139 LIBREPLACEMALLOC_LDFLAGS_PPC32_LINUX = \
    140 	-Wl,--whole-archive \
    141 	$(LIBREPLACEMALLOC_PPC32_LINUX) \
    142 	-Wl,--no-whole-archive
    143 
    144 LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
    145 	-Wl,--whole-archive \
    146 	$(LIBREPLACEMALLOC_PPC64_LINUX) \
    147 	-Wl,--no-whole-archive
    148 
    149 LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
    150 	-Wl,--whole-archive \
    151 	$(LIBREPLACEMALLOC_ARM_LINUX) \
    152 	-Wl,--no-whole-archive
    153 
    154 LIBREPLACEMALLOC_LDFLAGS_ARM64_LINUX = \
    155 	-Wl,--whole-archive \
    156 	$(LIBREPLACEMALLOC_ARM64_LINUX) \
    157 	-Wl,--no-whole-archive
    158 
    159 LIBREPLACEMALLOC_LDFLAGS_X86_DARWIN = \
    160 	$(LIBREPLACEMALLOC_X86_DARWIN)
    161 
    162 LIBREPLACEMALLOC_LDFLAGS_AMD64_DARWIN = \
    163 	$(LIBREPLACEMALLOC_AMD64_DARWIN)
    164 
    165 LIBREPLACEMALLOC_LDFLAGS_S390X_LINUX = \
    166 	-Wl,--whole-archive \
    167 	$(LIBREPLACEMALLOC_S390X_LINUX) \
    168 	-Wl,--no-whole-archive
    169 
    170 LIBREPLACEMALLOC_LDFLAGS_MIPS32_LINUX = \
    171 	-Wl,--whole-archive \
    172 	$(LIBREPLACEMALLOC_MIPS32_LINUX) \
    173 	-Wl,--no-whole-archive
    174 
    175 LIBREPLACEMALLOC_LDFLAGS_MIPS64_LINUX = \
    176 	-Wl,--whole-archive \
    177 	$(LIBREPLACEMALLOC_MIPS64_LINUX) \
    178 	-Wl,--no-whole-archive
    179 
    180 #----------------------------------------------------------------------------
    181 # General stuff
    182 #----------------------------------------------------------------------------
    183 
    184 all-local: inplace-noinst_PROGRAMS inplace-noinst_DSYMS
    185 
    186 clean-local: clean-noinst_DSYMS
    187 
    188 install-exec-local: install-noinst_PROGRAMS install-noinst_DSYMS
    189 
    190 uninstall-local: uninstall-noinst_PROGRAMS uninstall-noinst_DSYMS
    191 
    192