Print this page
3900 illumos will not build against gcc compiled perl

*** 18,27 **** --- 18,28 ---- # # CDDL HEADER END # # # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + # Copyright (c) 2013 Racktop Systems. # include ../../Makefile.cmd # To turn KEEP_STATE off the following two environment variables must be unset.
*** 31,46 **** # staging area to postprocess and install the result to $(ROOT) STAGE = $(SRC)/cmd/perl/$(PERL_VERSION)/staging PERL=/usr/perl5/$(PERL_VERSION)/bin/perl ! PERL_MM_ARGS = INSTALLDIRS=perl CC='$(CC)' LD='$(CC)' # Prefix for Solaris-specific extensions that are maintained by # Sun/Oracle. SUN_SOLARIS = Sun/Solaris # Add any XS extensions here. PERL_DYNAMIC_EXT = \ $(SUN_SOLARIS)/Utils \ $(SUN_SOLARIS)/Kstat \ $(SUN_SOLARIS)/Intrs \ --- 32,60 ---- # staging area to postprocess and install the result to $(ROOT) STAGE = $(SRC)/cmd/perl/$(PERL_VERSION)/staging PERL=/usr/perl5/$(PERL_VERSION)/bin/perl ! PERL_MM_ARGS = CC='$(CC)' LD='$(CC)' # Prefix for Solaris-specific extensions that are maintained by # Sun/Oracle. SUN_SOLARIS = Sun/Solaris + # When building with gcc we don't bother with cw. Intead we use PerlGcc to + # make sure the Makefile contains options that the compiler will understand. + # The version on the host could be incomplete so use the one we're building. + PERL5LIB = + $(__GNUC)PERL5LIB= \ + $(SRC)/cmd/perl/$(PERL_VERSION)/$(SUN_SOLARIS)/PerlGcc + + $(__GNUC)PERL_MM_ARGS = \ + CC='$(GCC_ROOT)/bin/gcc' \ + LD='$(GCC_ROOT)/bin/gcc' + + PERL_MM_ARGS += INSTALLDIRS=perl + # Add any XS extensions here. PERL_DYNAMIC_EXT = \ $(SUN_SOLARIS)/Utils \ $(SUN_SOLARIS)/Kstat \ $(SUN_SOLARIS)/Intrs \
*** 58,67 **** --- 72,84 ---- $(SUN_SOLARIS)/Pg PERL_EXT = $(PERL_DYNAMIC_EXT) $(PERL_NONXS_EXT) PERL_EXT_MAKEFILES = $(PERL_EXT:%=%/Makefile) + # When doing a gcc build we need to build PerGcc before the dynamic extenions. + $(__GNUC)$(PERL_DYNAMIC_EXT:%=%/Makefile): $(SUN_SOLARIS)/PerlGcc/Makefile + all: copy_contrib $(PERL_EXT_MAKEFILES) $(PERL_EXT) .PARALLEL: $(PERL_EXT_MAKEFILES) $(PERL_EXT) install: all
*** 112,122 **** # # Ensure that the extension's makefile is built before # trying to build the extension # %/Makefile: %/Makefile.PL $(PERL_CONFIGDEP) ! @ cd $(@D); pwd; $(PERL) $(<F) $(PERL_MM_ARGS) 2>&1 /dev/null # Pattern-matching rule for extensions. $(SUN_SOLARIS)/%: $(SUN_SOLARIS)/%/Makefile FRC @ cd $@; pwd; $(KEEP_STATE_OFF) ; \ $(PERL_MM_ARGS) $(MAKE) DESTDIR=$(STAGE) all --- 129,140 ---- # # Ensure that the extension's makefile is built before # trying to build the extension # %/Makefile: %/Makefile.PL $(PERL_CONFIGDEP) ! @ cd $(@D); pwd; PERL5LIB=$(PERL5LIB) \ ! $(PERL) $(<F) $(PERL_MM_ARGS) 2>&1 /dev/null # Pattern-matching rule for extensions. $(SUN_SOLARIS)/%: $(SUN_SOLARIS)/%/Makefile FRC @ cd $@; pwd; $(KEEP_STATE_OFF) ; \ $(PERL_MM_ARGS) $(MAKE) DESTDIR=$(STAGE) all