summaryrefslogtreecommitdiff
path: root/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder
Commit message (Collapse)AuthorAgeFilesLines
* bump version ExtUtils::CBuilderTony Cook2022-10-2413-13/+13
| | | | and update Changes
* ExtUtils::CBuilder: make sure the compiler finds the CORE include files for ↵Tony Cook2022-10-241-0/+17
| | | | | | | | | | | | | | | the system perl on darwin The system compiler on sufficienctly recent darwin doesn't appear to find header files installed with the system perl if the CORE include directory is specified with -I, even if we've checked that directory contains EXTERN.h. EU::MM adopted a change from Apple's patches, and this change adapts that change for ExtUtils::CBuilder. This problem prevented ExtUtils::ParseXS tests from completing successfully, failing to find EXTERN.h.
* ExtUtils::CBuilder - bump versionGraham Knop2022-06-0813-13/+13
|
* ExtUtils::CBuilder - print out commands being run in usable formGraham Knop2022-06-082-5/+40
| | | | | | | | | | | | | | | When not set to be quiet, the system commands being run are printed out before running them. This can assist with diagnosing issues. It is implied that this is a command that could be run by a user. Since the command is internally run with system using list form, it does not involve the shell, and does not need any extra quoting. The printed out command however, would be run by a user through a shell. Just joining the arguments with spaces will not quote them correctly for use through a shell. Add a new method for quoting a string for the shell. And use this method when printing out the command line that we are running.
* ExtUtils-CBuilder: Remove image-base generation on Win32/gccZakariyya Mughal2021-02-1213-24/+15
| | | | | | | | | | Switches from generating an image-base address using the basename of the output file to using GCC's built-in `--enable-auto-image-base` linker option. This aligns the linking behaviour for Win32/gcc with that of ExtUtils-MakeMaker which removed image-base generation in commit <https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/343d21a453c4d03cf7304dbd4c4dd8180df574ad>.
* Update ExtUtils-CBuilder to CPAN version 0.280235Chris 'BinGOs' Williams2020-11-1413-13/+17
| | | | | | | | | | | [DELTA] 0.280235 - 2020-11-01 Fix: - Fix compilation on darwin with XCode 12 (-Werror=implicit-function-declaration) Thanks to DrHyde for the patch.
* Update ExtUtils-CBuilder to 0.280234Alberto Simoes2020-01-2113-13/+13
|
* Update EU::CBuilder to 0.280231Alberto Simões2019-03-3112-12/+12
| | | | Committer: additional email address for contributor
* quotemeta the stuff intended literally in REEd J2019-03-301-2/+2
| | | | | | For: RT 133966 Committer: Bump $VERSION in dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
* Sync ExtUtils-CBuilder with CPAN release 0.280230Alberto Simões2017-11-2213-14/+30
| | | | | | | | | 0.280230 - 2017-11-22 Fixed: - Updated Changes - Used OurPkgVersion instead of PkgVersion
* Replace multiple 'use vars' by 'our' in distNicolas R2017-11-119-28/+18
| | | | | | | | | | | | | | | | | | | | Using vars pragma is discouraged and has been superseded by 'our' declarations available in Perl v5.6.0 or later. Additionally using 'vars' pragma increase the memory consumption of a program by about 700 kB for no good reason. This commit is about replacing the usage of 'vars' pragma by 'our' in blead where it makes sense. ( leaving 'cpan' directory outside of the scope ) -- using vars perl -e 'use vars qw(@ISA $AUTOLOAD $VERSION); print qx{grep RSS /proc/$$/status} ' VmRSS: 2588 kB -- using our instead perl -e 'our (@ISA, $AUTOLOAD, $VERSION); print qx{grep RSS /proc/$$/status} ' VmRSS: 1864 kB
* ExtUtils::CBuilder - Fix link() on Windows, broken in version 0.280226Steve Hay2017-07-2013-14/+14
|
* fix ExtUtils-CBuilder tests for Perl 5.6Zefram2017-07-1913-13/+13
|
* perldelta for c7ac81d9d79d22d7d1133b804e5f8dc4a641fe39James E Keenan2017-07-151-1/+1
| | | | Signed-off-by: James E Keenan <jkeenan@cpan.org>
* Update to ExtUtils::CBuilder 0.280226Alberto Simões2017-07-1513-19/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | File::Basename::fileparse(), when called with two arguments, is documented to return a list of three elements: The non-suffix part of the file's basename. The file's dirname, plus trailing path separator. The suffix part of the file's basename. Thus, my ($name,$path,$suffix) = fileparse('/tmp/perl/p5p/foo.patch', qr/\.[^.]*/); returns: $name: foo $path: /tmp/perl/p5p/ $suffix: .patch If we want to take those values and compose a path with File::Spec->catfile(), we have to bear in mind that File::Spec generally expects to have directories precede filenames in its arguments. Thus, the correct way to use the values returned by fileparse() would be: my $cf = File::Spec->catfile($path, $name . $suffix); In ExtUtils::CBuilder::Base::new(), however, the return values from fileparse() were named in a way that suggested that the first value would be the dirname and the second would be the non-suffix part of the basename: my ($ccpath, $ccbase, $ccsfx ) = fileparse($self->{config}{cc}, qr/\.[^.]*/); $ccpath -- which here is really a basename -- was then used as the first argument to catfile(): File::Spec->catfile( $ccpath, $cxx, $ccsfx ) In addition, in the above $ccsfx should not have been a separate argument. Rather, it should have been concatenated without a path separator to the second argument. For: RT # 131749. See also: https://github.com/Perl-Toolchain-Gang/ExtUtils-CBuilder/pull/6 (thanks to stphnlyd of Perl Toolchain Gang). Signed-off-by: James E Keenan <jkeenan@cpan.org>
* add parallelness to win32/GNUmakefileDaniel Dragan2016-01-2513-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -.UPDATEALL is dmake only, doesn't exist in gmake, create more targets instead GNUmakefile:1319: warning: overriding recipe for target '.UPDATEALL' GNUmakefile:1024: warning: ignoring old recipe for target '.UPDATEALL' -fix ok/nok targets on dmake and gmake -dont delete old mini config.h, the copy overwrites it, for dmake and gmake 1 less process to run this way -modify whitespace and comments between 2 makesfiles so there are less delta lines if the 2 are diffed, this aids in diagnostics -remove perlmainst.c/perlmain.c build products, just use runperl.c directly 1 less disk file to create and later clean and git status and 2 less nodes in the make graph to traverse, also better for C debugger, since "runperl.c" is around after a git clean of the source tree, and runperl.c is in every single callstack in perl. -remove copying mini config.h to CORE dir, pointless since (mini) config.h isn't an input to config_h.PL, remove the exit 1 from commit 137443ea0a from 5.003, rewriting config.h is not a reason to stop the build with a fatal error, vivify CORE dir or else sub copy() fails -deshell UNIDATAFILES/mktables, 1 less cmd.exe process and 1 less .bat file written to disk for gmake (dmake always uses cmd.exe ATM) -combining mini config.h AKA $(MINIDIR)\.exists shell append lines is for another commit -perlglob.exe is not installed, it doesn't need to be rebased, it is only needed for module building, removing the dep makes the dep graph simpler -rename PERLIMPLIB so the lib is built in its final location in CORE dir this removes an extra xcopy process run. Since perl dll's .a/.lib is not longer in the root of the source tree, change the 2 tests and ExtUtils::CBuilder::Platform::Windows to look at the uninstalled final location dir, not the root dir -fix typo 0.282224->0.280224 in dist/ExtUtils-CBuilder/Changes -for GCC PERLEXPLIB must be used, passing "perldll.def" on cmd line to g++ means all data globals with EXTCONST are exported (which have dllexport on their declaration) instead of just what is in perldll.def and globvar.sym, INTERN/EXTERN.h could be revised to fix that, but I am not doing that at this time. Also drop linking GCC perl523.dll from 3 processes to just 1 process like with VC builds. Removing 2nd run of dlltool fixes a race condition where libperl523.a was generated twice. This caused a race condition failure where linking a XS DLL failed because the GCC linker of the XS DLL saw a partially written libperl523.a. -Relocation was tested with $(LINK32) -v -mdll -o $@ -Wl,--disable-auto-image-base -Wl,--image-base -Wl,0x400000 $(BLINK_FLAGS) $(PERLDLL_OBJ) $(shell @type Extensions_static) $(LIBFILES) $(PERLEXPLIB) to g++ linker to force an address conflict and verified with VMMap (unrelocated perl523.dll has ~40KB private memory, relocated has ~240KB private memory on Win 7 32b), historically there are problems with dllexport and dlltool and relocation problems with mingw -$(COREDIR)\ppport.h in gmake is separate lines since gmake normally launches processes directly, not through the shell, so it is more efficent to keep it as multiple lines for gmake, while dmake likes to burn CPU and IO between each line, and runs each line through cmd.exe -disable parallel building in make_ext.pl by not passing MAKEFLAGS env var to any subprocess, EUMM is not ready for parallelness inside a module building on Win32 -have harness proc and child .t procs share same disk perl.exe and perl523.dll files, this way they share memory pages, makefile.mk does the same thing
* Upgrade ExtUtils::CBuilder from version 0.280223 to 0.280224Steve Hay2015-10-1313-16/+34
|
* Update ExtUtils-CBuilder to CPAN version 0.280223Chris 'BinGOs' Williams2015-06-0313-13/+13
| | | | | | | | | | | | | | | | | | [DELTA] 0.280223 - 2015-06-02 Fixed: - Impose deterministic order on cpp-definition options. Heretofore, ExtUtils::CBuilder put cpp-definition options into the cc command line in non-deterministic order. This produced noise when diffing build logs. Make this order deterministic. (RT #124106) Added: - Add tests for ascii-betical order in t/04-base.t.
* Impose deterministic order on cpp-definition options.Zefram2015-06-013-40/+40
| | | | | | | | | | | Heretofore, ExtUtils::CBuilder put cpp-definition options into the cc command line in non-deterministic order. This produced noise when diffing build logs. Make this order deterministic. Add tests for ascii-betical order in t/04-base.t. Increment $VERSION in three packages. Remove commented-out line. For: RT #124106
* Version bump for ExtUtils::CBuilder.Craig A. Berry2014-12-1310-10/+10
|
* Remove VAXC special cases from ExtUtils::CBuilder.Craig A. Berry2014-12-131-4/+1
| | | | | | VAX C was a pre-ANSI compiler that was superceded about fifteen years ago, so there is no reason to include special cases for it now.
* Adds a missing 'use Config' on android.pm file.Alberto Simões2014-09-2813-13/+14
| | | | | | Update $VERSION in each platform-specific module. For: RT #122860
* Update ExtUtils::CBuilder to version 0.280219. Correct one test.Alberto Simões2014-09-0113-45/+23
| | | | | | | | Switch to using VERSION_FROM in Makefile.PL. For: RT #122675 Add update to ExtUtils::CBuilder to perldelta.
* ExtUtils::CBuilder: On Android, link to both -lperl and $Config{perllibs}Brian Fraser2014-08-0913-13/+15
| | | | | | | This is done because quite a bit of CPAN assumes that if libperl.so links to something, then you'll get those functions for free, but that is not the case on Android.
* CBuilder::Android: fix ->link() to respect wantarray.Brian Fraser2014-02-0513-14/+14
|
* CBuilder, link: On Android, always return absolute paths to librariesBrian Fraser2014-02-0313-14/+24
| | | | | | | | | | | | Several modules on CPAN expect being able to pass the library name returned by ->link to DynaLoader::dl_load_file and have it Just Work. However, because ->link returns relative paths, those modules ran afoul of Android's linker, which will only look in a handful of hardcoded system directories for relative libraries, plus whatever LD_LIBRARY_PATH pointed to at the start of execution. This commit makes ->link on Android always return an absolute path, which will be found by the linker.
* Up the version of ExtUtils::CBuilderBrian Fraser2014-01-2613-13/+13
|
* CBuilder, android: Fix the useshrplib checkBrian Fraser2014-01-261-1/+1
|
* ExtUtils::CBuilder: Android with useshrplib needs -lperlPiotr Roszatycki2014-01-261-0/+27
|
* Teach ExtUtils::CBuilder to handle mod2fname properlyBrian Fraser2014-01-0312-37/+28
|
* Upgrade ExtUtils::CBuilder from version 0.280210 to 0.280212Steve Hay2013-09-0912-12/+12
|
* typo fix for ExtUtils::CBuilderDavid Steinbrunner2013-05-251-2/+2
| | | | Bump $VERSION.
* Remove 2 superfluous use lines from ExtUtils::CBuilder.Nicholas Clark2013-05-211-3/+1
| | | | | | | | | use IO::File was added with the upgrade to 0.23 (commit c3fb68a339256eb3 in April 2008), but the use of IO::File in the code was eliminated by the upgrade to 0.2800 (commit 06e8058f27e4269b in Dec 2010), which replaced the code in question with use of File::Temp. The latter refactoring also added the use Data::Dumper; line, but did not add any code which uses Data::Dumper.
* Bump $ExtUtils::CBuilder::VERSION and add Changes entry for prelink() fixSteve Hay2012-10-0312-12/+12
|
* Allow a list of symbols to export to be passed to link() when on Windows, as ↵Eric Brine2012-10-031-1/+2
| | | | on other OSes.
* [perl #111798] ExtUtils-CBuilder looks for the manifest file in the wrong placeN/K2012-05-2812-14/+13
| | | | | | | | | | | | | | | | | | | | | | Near the start of link(), $output gets set to a blib\arch\auto path. A little later that gets copied into $spec{output}, but $spec{manifest} is left unset so it gets set later to a $spec{builddir} path, which is not what $spec{output} was set to earlier. The manifest file is always created alongside the DLL, so the correct fix is simply to append '.manifest' to the DLL path to find the manifest. (EU-MM does that too.) Patch taken from [cpan #35943] which reported the same problem. The other concern raised there, about the VC version being checked to deduce the existence of the manifest file rather than testing that directly, has long since been incorporated already and also explains why this problem has not been seen recently: the faulty attempt to embed the manifest has not been attempted ever since the existence test was added because it was also failing and hence no 'mt' command was being run. [cpan #35943] is thus resolved by this change too. Bump $VERSION in all ExtUtils::CBuilder files (to 0.280208) to keep them all in sync as before.
* [perl #111782] ExtUtils-CBuilder on Windows does not embed manifestsSteve Hay2012-05-2812-13/+14
| | | | | | Correct the test for the existence of the manifest file. Bump $VERSION in all ExtUtils::CBuilder files (to 0.280207) to keep them all in sync, as is currently the case.
* ExtUtils::CBuilder: add support informationDavid Golden2012-02-2212-12/+12
| | | | | Adds a documentation note about support. Adds a README.patching file with instructions for bumping versions, Changes, etc.
* cflags does not exists in Config.pm; use ccflagsambs2012-01-0512-13/+13
| | | | | | [dagolden bumped $VERSION and added ambs to the AUTHORS file] Signed-off-by: David Golden <dagolden@cpan.org>
* Version bumpsif-0.0602Father Chrysostomos2011-11-221-1/+1
|
* [RT #36079] Convert ` to '.jkeenan2011-11-221-2/+2
|
* Increase version for ExtUtils::CBuilderFather Chrysostomos2011-05-181-1/+1
|
* Append CFLAGS and LDFLAGS to their Config.pm counterparts in EU::CBuilderNiko Tyni2011-05-181-2/+4
| | | | | | | | | Since ExtUtils::CBuilder 0.27_04 (bleadperl commit 06e8058f27e4), CFLAGS and LDFLAGS from the environment have overridden the Config.pm ccflags and ldflags settings. This can cause binary incompatibilities between the core Perl and extensions built with EU::CBuilder. Append to the Config.pm values rather than overriding them.
* Bump ExtUtils::CBuilder version following a24b897525551a1d.Nicholas Clark2011-04-0512-12/+12
|
* Make ExtUtils::CBuilder reset ccflags on compile for VMS.Craig A. Berry2011-04-041-0/+15
| | | | | | | | | | | | | | | | | | | | On VMS only, the /DEFINE and /INCLUDE qualifiers are parsed off the local copy of $Config{ccflags} and consumed in the process. This is necessary because you're only allowed one of each of these clauses in the compile command, so to add whatever has been requested for a specific compile, we have to combine them with whatever Perl was built with. But since they are consumed, multiple compiles on the same EU::CB object were only using the correct flags for the first one. Even calling the have_compiler() check before compile() would make the latter miss the defines and includes that were used to build Perl. The solution is add a platform override that resets the local copy of $Config{ccflags} from its original in %Config every time a compiler operation is initiated. Fixes smoke failures in ExtUtils::ParseXS.
* bump ExtUtils::CBuilder version numbersDavid Golden2011-01-2312-12/+12
|
* bump ExtUtils-CBuilder version for blead changeZefram2010-12-1912-12/+12
|
* Change ExtUtils::CBuilder upstream to bleadDavid Golden2010-12-1512-0/+1604
ExtUtils::CBuilder now has blead as its upstream repository. The distribution has been moved to the dist/ directory consistent with this change.