| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These programs are the same, just behave differently depending on
under which name you call it.
This is a very old script, originally dating from the perl3 era.
It has been deprecated in favour of h2xs for a long time.
In Perl 5.26, these utilities will no longer be available.
|
|
|
|
|
|
|
|
| |
dtrace without -xnolibs fails in a FreeBSD jail, so we need to supply
it on FreeBSD.
Unfortunately systemtap's dtrace emulation doesn't support -xnolibs so
we need to test if it's available.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When generating an object file with "dtrace -G", dtrace also modifies
the input object files.
This causes two problems:
1) Since the objects are modified, their modification times are updated
which may break dependency checks by make.
2) on FreeBSD at least, once the object has been processed it can't be
processed again by dtrace -G
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
probes
efc4bddfd4 added generating a probes object file for perlmain.o, since
the compiler was generating probes even for unused inline functions.
The default compiler on FreeBSD 11 however doesn't generate probes for
these unused inline functions, and dtrace -G fails because it can't
find any.
So if dtrace fails for perlmain.o generate a dummy object file to
take its place.
Similarly for XS::APItest.
|
| |
|
| |
|
|
|
|
| |
Had to run ./perl -Ilib regen/lib_cleanup.pl.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Splint has not been updated since 2007 and doesn’t even build for me.
As far as I know, I'm the only person who's ever worked with Splint on
Perl 5.
Here's what changes:
* Makefile target "splint"
* Macros in XSUB.h and perl.h
* Support in regen/embed.pl
|
| |
|
|
|
|
|
| |
require calls now require ./ to be prepended to the file since . is no
longer guaranteed to be in @INC.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
So '$(MINIPERL) -Ilib' is redundant.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Fixes perl #125303.
(Includes a regen for the moved Myconst2perl.pm.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[perl #127543]
On some platforms, the use of dtrace / SystemTap requires generating an
extra .o file from a list of .o files before linking. For example,
cc -o foo a.o b.o c.o
has to be replaced with
dtrace -G -s dtrace.d -o dtrace.o a.o b.o c.o # creates dtrace.o
cc -o foo dtrace.o a.o b.o c.o
On Solaris in particular, "dtrace -G" modifies the *.o files that it's
passed as well as creating dtrace.o, and all the new/updated .o files need
to be linked together at the same time from the same single use of "dtrace
-G".
This complicates matters when building all of miniperl, libperl and perl,
and the reason for this commit is that once a dtrace probe made its way
into an inline static function via the recent context work, Solaris
stopped building under -Dusedtrace -Duseshrplib.
The fix that seems to work under both Solaris and Linux, for all
4 permutations of -Dusedtrace +/- -Duseshrplib, is (approx):
# compile all the *.o's, then:
# build miniperl:
$ dtrace ... -o dtrace_mini.o a.o b.o c.o perlminimain.o
$ cc -o miniperl dtrace_mini.o a.o b.o c.o perlminimain.o
# build libperl.a or .so:
$ dtrace ... -o dtrace_perllib.o a.o b.o c.o
$ ar rcu libperl.a dtrace_perllib.o a.o b.o c.o
# build perl:
$ dtrace ... -o dtrace_main.o perlmain.o
$ cc -o perl dtrace_main.o -lperl
This is has only recently arisen because we switched from PUSHSUB()
etc macros to S_cx_pushsub() etc inline functions, which contain
probes. Since the inline static functions, and hence the probes, are now
included in every source file, and since Solaris isn't smart enough to
remove inline static fns that aren't used in a particular compilation
unit, the probes end up getting used in every source file (at least where
PERL_CORE is true).
It also required fixing up XS-APItest's Makefile.PL, since one object
file is compiled using PERL_CORE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are a number of variables in the generated Makefile, such as
'obj' and 'minindt_obj', that enumerate various subsets of the object
files that need to be compiled and linked.
Rename and reorganise these vars slightly, to make the next commit
simpler. In particular it now splits the object files in into 3 sets:
common (av.o etc), those used just by miniperl (opmini.o etc)
and those used just by perl (op.o etc).
Should be no functional changes.
The changes to os2/Makefile.SHs have been done blind. Does anyone still
use OS2?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The are a few places in Makefile.SH which do (approximately):
rm $libfile
ar rcu $libfile *.o
The 'u' in 'rcu' seems redundant since the old lib file is always deleted
just before being recreated; and more to the point, it generates warnings
on recent Linux builds:
/bin/ar: `u' modifier ignored since `D' is the default (see `U')
This is because the 'u' modifier updates the archive, i.e. only replaces
the objects which are newer in an existing archive. On my Linux system,
ar by default operates in 'deterministic' mode, which means that it
doesn't add timestamps etc (so that repeated builds will give identical
binaries). In this mode 'u' can't work, hence the warning.
So this commit just removes the 'u' flag.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When building the object file, newer versions of dtrace (on Illumos
based systems at least) require an input object file that uses
at least one of the probes defined in the .d file.
The test in Makefile.SH didn't provide that definition so the test
would fail, and not build an object file, and fail to link later on,
on systems that *do* need the object file.
Moved the probe to Configure (where it probably belongs) and supplied
an object file that uses a probe.
Tested successfully on OmniOS (with the new dtrace), Solaris 11,
and darwin.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
(but none of the other executables should be)
|
| |
|
| |
|
| |
|