Print this page
7170 ENABLE_PERL64 multiarch builds
reviewed by: Andrew Stormont <andyjstormont@gmail.com>
reviewed by: Lauri Tirkkonen <lotheac@iki.fi>
*** 11,51 ****
#
# Copyright (c) 2014 Racktop Systems.
# Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved.
#
! # Link against libc as perl solaris specs
$(PERLEXT):= LDLIBS += -lc
# Allow for undefined symbols satisfied by perl
$(PERLEXT):= ZDEFS =
$(ROOTPERLEXT) := FILEMODE = 0555
$(ROOTPERLMOD) := FILEMODE = 0444
# CFLAGS for perl, specifically.
PCFLAGS= -DPERL_EUPXS_ALWAYS_EXPORT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \
-DPERL_USE_SAFE_PUTENV -D_TS_ERRNO
! $(MACH):
$(INS.dir)
$(PERLEXT): $(MACH)/$(MODULE).o
$(BUILD.SO) $(MACH)/$(MODULE).o
$(MACH)/$(MODULE).o: $(MACH)/$(MODULE).c
$(COMPILE.c) $(PCFLAGS) $(C_PICFLAGS) -I$(PERLINCDIR) $< -o $@
$(MACH)/$(MODULE).c: $(MACH) $(MODULE).xs
! $(PERLDIR)/bin/xsubpp $(XSUBPPFLAGS) $(MODULE).xs >$@
! $(ROOTPERLMODDIR):
$(INS.dir)
$(ROOTPERLMOD): $(ROOTPERLMODDIR) $(MODULE).pm
$(RM) $@; $(INS) -s -m $(FILEMODE) -f $^
! $(ROOTPERLEXTDIR):
$(INS.dir)
$(ROOTPERLEXT): $(ROOTPERLEXTDIR) $(MACH)/$(MODULE).so
$(RM) $@; $(INS) -s -m $(FILEMODE) -f $^
--- 11,80 ----
#
# Copyright (c) 2014 Racktop Systems.
# Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved.
#
! # Link against libc as per solaris specs
$(PERLEXT):= LDLIBS += -lc
+ $(PERLEXT64):= LDLIBS += -lc
# Allow for undefined symbols satisfied by perl
$(PERLEXT):= ZDEFS =
+ $(PERLEXT64):= ZDEFS =
$(ROOTPERLEXT) := FILEMODE = 0555
$(ROOTPERLMOD) := FILEMODE = 0444
+ $(ROOTPERLEXT64) := FILEMODE = 0555
+ $(ROOTPERLMOD64) := FILEMODE = 0444
# CFLAGS for perl, specifically.
PCFLAGS= -DPERL_EUPXS_ALWAYS_EXPORT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \
-DPERL_USE_SAFE_PUTENV -D_TS_ERRNO
+ PCFLAGS64= -m64 -DPERL_EUPXS_ALWAYS_EXPORT -D_LARGEFILE64_SOURCE \
+ -DPERL_USE_SAFE_PUTENV -D_TS_ERRNO
! $(MACH) $(MACH64):
$(INS.dir)
+ # Sorry about this...
+ # BUILD.SO doesn't have distinct versions like COMPILE.c/COMPILE64.c does.
+ # To that end - we're defining BUILD64.SO here.
+ BUILD64.SO= $(CC) $(CFLAGS64) -o $@ $(GSHARED) $(DYNFLAGS) \
+ $(PICS) $(EXTPICS) -L $(ROOTLIBDIR64) $(LDLIBS)
+
$(PERLEXT): $(MACH)/$(MODULE).o
$(BUILD.SO) $(MACH)/$(MODULE).o
+ $(PERLEXT64): $(MACH64)/$(MODULE).o
+ $(BUILD64.SO) $(MACH64)/$(MODULE).o
+
+ # NOTE: With later version of Perl, we need to define PERL_EUPXS_ALWAYS_EXPORT
+ # which is a backward-compatibility definition for the assumes-5.10 stuff here.
$(MACH)/$(MODULE).o: $(MACH)/$(MODULE).c
$(COMPILE.c) $(PCFLAGS) $(C_PICFLAGS) -I$(PERLINCDIR) $< -o $@
+ $(MACH64)/$(MODULE).o: $(MACH64)/$(MODULE).c
+ $(COMPILE64.c) $(PCFLAGS64) $(C_PICFLAGS) -I$(PERLINCDIR64) $< -o $@
+
$(MACH)/$(MODULE).c: $(MACH) $(MODULE).xs
! ISALIST=$(MACH) $(XSUBPP) $(XSUBPPFLAGS) $(MODULE).xs >$@
! $(MACH64)/$(MODULE).c: $(MACH64) $(MODULE).xs
! ISALIST=$(MACH64) $(XSUBPP) $(XSUBPPFLAGS) $(MODULE).xs >$@
!
! $(ROOTPERLMODDIR) $(ROOTPERLMODDIR64):
$(INS.dir)
$(ROOTPERLMOD): $(ROOTPERLMODDIR) $(MODULE).pm
$(RM) $@; $(INS) -s -m $(FILEMODE) -f $^
! $(ROOTPERLMOD64): $(ROOTPERLMODDIR64) $(MODULE).pm
! $(RM) $@; $(INS) -s -m $(FILEMODE) -f $^
!
! $(ROOTPERLEXTDIR) $(ROOTPERLEXTDIR64):
$(INS.dir)
$(ROOTPERLEXT): $(ROOTPERLEXTDIR) $(MACH)/$(MODULE).so
+ $(RM) $@; $(INS) -s -m $(FILEMODE) -f $^
+
+ $(ROOTPERLEXT64): $(ROOTPERLEXTDIR64) $(MACH64)/$(MODULE).so
$(RM) $@; $(INS) -s -m $(FILEMODE) -f $^