Print this page
OS-2559 illumos-extra should provide native node in proto.strap

Split Close
Expand all
Collapse all
          --- old/gcc4/Makefile
          +++ new/gcc4/Makefile
↓ open down ↓ 46 lines elided ↑ open up ↑
  47   47  AUTOCONF_ENV += \
  48   48          DESTDIR=$(DESTDIR) \
  49   49          MAKE=$(MAKE)
  50   50  
  51   51  OVERRIDES += \
  52   52          $(AUTOCONF_CFLAGS) \
  53   53          STAGE1_CFLAGS="$(CFLAGS)" \
  54   54          CFLAGS_FOR_TARGET="$(CFLAGS)"
  55   55  
  56   56  #
       57 +# The runtime libraries that we build into proto.strap should be made to search
       58 +# for their dependencies there as well, so that programs built to run on the
       59 +# build machine (from proto.strap) find the correct copies of these libraries.
       60 +#
       61 +ifeq ($(STRAP),strap)
       62 +        STRAPFIX_LINKS= \
       63 +                $(DESTDIR)/lib/64 \
       64 +                $(DESTDIR)/usr/lib/64
       65 +        STRAPFIX_FILES_32 = \
       66 +                $(DESTDIR)/usr/lib/libgcc_s.so.1 \
       67 +                $(DESTDIR)/usr/lib/libstdc++.so.6
       68 +        STRAPFIX_FILES_64 = \
       69 +                $(DESTDIR)/usr/lib/64/libgcc_s.so.1 \
       70 +                $(DESTDIR)/usr/lib/64/libstdc++.so.6
       71 +        STRAPFIX_FILES = $(STRAPFIX_FILES_32) $(STRAPFIX_FILES_64)
       72 +endif
       73 +
       74 +#
  57   75  # Unlike everything else, gcc is built to be a cross-compiler, really.  It
  58   76  # never runs on the target system, only the build system.  So it should not
  59   77  # be using the proto area's headers or libraries.  Its own libraries will be
  60   78  # built by the new compiler, and generally aren't using system headers anyway.
  61   79  # This is not really completely true; for example, libstdc++, and this will
  62   80  # need more work to be really right.  We only deliver the libraries.
  63   81  #
  64   82  AUTOCONF_CPPFLAGS =
  65   83  AUTOCONF_LIBS =
  66   84  GENLDFLAGS =
↓ open down ↓ 34 lines elided ↑ open up ↑
 101  119          touch $@/configure
 102  120  
 103  121  $(VER.32)/gmp: $(GMP_VER).tar.bz2 | $(VER.32)
 104  122          -rm -rf $@
 105  123          mkdir -p .unpack32
 106  124          gtar x -C .unpack32 -j --no-same-owner -f $(GMP_VER).tar.bz2
 107  125          mv -f .unpack32/$(GMP_VER) ./$@
 108  126          -rmdir .unpack32
 109  127          chmod 755 $@/configure
 110  128          touch $@/configure
      129 +
      130 +.PHONY: strapfix
      131 +strapfix: $(STRAPFIX_LINKS) $(STRAPFIX_FILES) | install
      132 +        for f in $(STRAPFIX_FILES_32); do \
      133 +                /usr/bin/elfedit -e \
      134 +                    'dyn:runpath $(DESTDIR)/lib:$(DESTDIR)/usr/lib' \
      135 +                    $$f; \
      136 +        done
      137 +        for f in $(STRAPFIX_FILES_64); do \
      138 +                /usr/bin/elfedit -e \
      139 +                    'dyn:runpath $(DESTDIR)/lib/64:$(DESTDIR)/usr/lib/64' \
      140 +                    $$f; \
      141 +        done
      142 +
      143 +$(STRAPFIX_LINKS):
      144 +        ln -s amd64 $@
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX