summaryrefslogtreecommitdiff
path: root/gcc/config/alpha/t-vms
blob: 410e219ff5bb25a91cb539cc6dd5c096f166babf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Copyright (C) 1996, 1997, 1998, 2001, 2002,
# 2007, 2009 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GCC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.

LIB2FUNCS_EXTRA = $(srcdir)/config/alpha/vms-gcc_shell_handler.c

EXTRA_PARTS = vms-dwarf2.o vms-dwarf2eh.o $(VMS_EXTRA_PARTS) \
  crtbegin.o crtbeginS.o crtend.o crtendS.o

# This object must be linked with in order to make the executable debuggable.
# vms-ld handles it automatically when passed -g.
$(T)vms-dwarf2.o : $(srcdir)/config/alpha/vms-dwarf2.asm
	$(GCC_FOR_TARGET) -c -x assembler $< -o $@

$(T)vms-dwarf2eh.o : $(srcdir)/config/alpha/vms-dwarf2eh.asm
	$(GCC_FOR_TARGET) -c -x assembler $< -o $@

MULTILIB_OPTIONS = mcpu=ev6
MULTILIB_DIRNAMES = ev6
MULTILIB_OSDIRNAMES = ev6
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib

shlib_version:=$(shell echo $(BASEVER_c) | sed -e 's/\./,/' -e 's/\.//g')
SHLIB_EXT = .exe
SHLIB_OBJS = @shlib_objs@
SHLIB_NAME = @shlib_base_name@.exe
SHLIB_MULTILIB =
SHLIB_INSTALL = $(INSTALL_DATA) $(SHLIB_NAME) $$(DESTDIR)$$(libsubdir)/$(SHLIB_NAME)
SHLIB_SYMVEC = \
  grep -F -e "\$$BSS\$$" -e "\$$DATA\$$" -e " sdata " -e " data.rel " -e " data.rel.ro " -e " sbss " \
        -e "\$$LINK\$$" -e "\$$READONLY\$$" | \
  sed -e "s/.*\$$LINK\$$   \(.*\)/SYMBOL_VECTOR=(\1=PROCEDURE)/" \
      -e "s/.*\$$DATA\$$   \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \
      -e "s/.* sbss     \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \
      -e "s/.* sdata    \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \
      -e "s/.* data.rel \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \
      -e "s/.* data.rel.ro \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \
      -e "s/.*\$$BSS\$$    \(.*\)/SYMBOL_VECTOR=(\1=DATA)/" \
      -e "s/.*\$$READONLY\$$ \(.*\)/SYMBOL_VECTOR=(\1=DATA)/"
SHLIB_SYMVECX2 := $(subst $$,$$$$,$(SHLIB_SYMVEC))
SHLIB_LINK = \
  echo "case_sensitive=yes" > SYMVEC_$$$$$$$$.opt; \
  objdump --syms $(SHLIB_OBJS) | \
  $(SHLIB_SYMVECX2) >> SYMVEC_$$$$$$$$.opt ; \
  echo "case_sensitive=NO" >> SYMVEC_$$$$$$$$.opt; \
  $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -nodefaultlibs \
  -shared --for-linker=/noinform -o $(SHLIB_NAME) $(SHLIB_OBJS) \
  --for-linker=SYMVEC_$$$$$$$$.opt \
  --for-linker=gsmatch=equal,$(shlib_version)