1Revision history for Perl extension ExtUtils::CBuilder. 2 30.280238 4 5 Fix: 6 7 - use -isyswithroot option for the CORE directory for the system perl on darwin. 8 The compiler would fail to find EXTERN.h with -I. 9 Came up while working on a fix for the similar issue in 10 https://github.com/Perl/perl5/issues/20362 11 120.280237 - 2022-05-09 13 14 - when not set to quiet, print commands being run in a usable form. 15 https://github.com/Perl/perl5/pull/19701 16 170.280236 - 2021-02-12 18 19 Fix: 20 21 - Remove image-base generation on Win32/gcc and instead use GCC's built-in 22 `--enable-auto-image-base` linker option. 23 240.280235 - 2020-11-01 25 26 Fix: 27 28 - Fix compilation on darwin with XCode 12 (-Werror=implicit-function-declaration) 29 Thanks to DrHyde for the patch. 30 310.280234 - 2020-01-21 32 33 Update: 34 35 - Updated standalone module from blead. 36 370.280231 - 2019-03-31 38 39 Fixed: 40 41 - Protected RE interpolation in Base.pm 42 43 440.280230 - 2017-11-22 45 46 Fixed: 47 48 - Updated Changes 49 - Used OurPkgVersion instead of PkgVersion 50 510.280229 - 2017-10-13 52 53 Fixed: 54 55 - Remove dependency to 'vars' package. 56 570.280228 - 2017-07-20 58 59 Fixed: 60 61 - Fix link() on Windows, broken in version 0.280226. 62 630.280227 - 2017-07-19 64 65 Fixed: 66 67 - Restore compatibility of test suite to Perl 5.6. 68 690.280226 - 2017-07-14 70 71 Fixed: 72 73 - Fix C++ compiler detection (RT #131749) 74 (thanks to stphnlyd) 75 760.280225 - 2016-01-04 77 78 Fixed: 79 80 - New location of libperl on Win32 when building core (RT #126632) 81 820.280224 - 2015-10-09 83 84 Enhancements: 85 86 - Use warnings/strict on all modules. 87 880.280223 - 2015-06-02 89 90 Fixed: 91 92 - Impose deterministic order on cpp-definition options. 93 Heretofore, ExtUtils::CBuilder put cpp-definition options 94 into the cc command line in non-deterministic order. This 95 produced noise when diffing build logs. 96 Make this order deterministic. (RT #124106) 97 98 Added: 99 100 - Add tests for ascii-betical order in t/04-base.t. 101 1020.280220 - 2014-09-27 103 104 Fixed: 105 106 - Added missing 'use Config' from 'android.pm' (thanks Debian community) 107 1080.280219 - 2014-09-01 109 110 Fixed: 111 112 - Fixed regression on Android (thanks to Brian Fraser) 113 1140.280218 - 2014-09-01 115 116 Fixed: 117 118 - Mispelled 'starup' key in BCC support was fixed. #79574 119 - Fixed the version in the PM file (thanks to Jim Keenan) 120 1210.280217 - 2014-08-22 122 123 Fixed: 124 125 - Quoted perl path for Windows support #98245 [Alberto Simões] 126 1270.280216 - 2014-03-07 128 129 Added: 130 131 - Android support [Brian Fraser and Piotr Roszatycki] 132 133 Fixed: 134 135 - Teach ExtUtils::CBuilder to handle mod2fname properly [Brian Fraser] 136 1370.280212 - 2013-09-08 138 139 Fixed: 140 141 - Reversion all modules. 142 1430.280211 - 2013-09-08 144 145 Fixed: 146 147 - Missing dependency Perl::OSType [Leon Timmermans] 148 - Fixed repository location [Alberto Simões] 149 1500.280210 - 2013-09-06 151 152 Fixed: 153 154 - Update INSTALLDIRS to favor installation under 'site' (perl 116479) 155 [James E Keenan] 156 1570.280209 - 2012-10-20 (Perl v5.17.5) 158 159 Fixed: 160 161 - Allow options to be passed to prelink in Windows (perl #115100) 162 [Eric Brine] 163 1640.280208 - 2012-06-20 (Perl v5.17.1) 165 166 Fixed: 167 168 - Corrected location in which manifest file is looked for on 169 Windows (RT#35943, perl #111798) [snaury@gmail.com] 170 1710.280207 (Not released) 172 173 Fixed: 174 175 - Corrected test for existence of manifest file on Windows 176 (perl #111782) [Steve Hay] 177 1780.280206 - 2012-03-20 (Perl v5.15.9) 179 180 Documented: 181 182 - Added a SUPPORT section to indicate that upstream is Perl 5 core 183 1840.280205 - 2011-12-20 (Perl v5.15.6) 185 186 Fixed: 187 188 - Fixed bug picking up ccflags from Config 189 1900.280204 - 2011-06-20 (Perl v5.15.0) 191 192 Minor: 193 194 - Quotation style cleanup 195 1960.280203 - 2011-05-14 (Perl v5.14.0) 197 198 Fixed: 199 200 - Appends CFLAGS and LDFLAGS environments instead of overriding 201 202 - Reset ccflags on compilation for VMS. 203 204 Changed: 205 206 - Refactored OS name mapping to use Perl::OSType 207 2080.280202 - Sun Jan 23 10:47:51 EST 2011 209 210 - Different file names used for test files; allows EU::CB tests 211 to be run in parallel. [Florian Ragwitz] 212 2130.280201 - Fri Jan 21 15:16:36 EST 2011 214 215 Fixed: 216 217 - t/04-base.t no longer attempt to compile or link as this provokes 218 failures on main platforms 219 220 - Various typo fixes in Pod or comments 221 2220.2802 - Sun Dec 12 07:22:43 EST 2010 223 224 Fixed: 225 226 - Incorporated another t/04-base.t fix from bleadperl 227 [Chris Williams] 228 2290.2801 - Wed Dec 8 21:36:56 EST 2010 230 231 Fixed: 232 233 - Fixed spurious t/04-base.t failure when run from Perl core 234 [David Golden] 235 2360.2800 - Mon Dec 6 16:05:46 EST 2010 237 238 - No changes from 0.27_07 239 2400.27_07 - Wed Sep 29 21:48:55 EDT 2010 241 242 Fixed: 243 244 - Fixed t/02-link.t on perl < 5.8 245 2460.27_06 - Mon Sep 27 15:29:54 EDT 2010 247 248 Fixed: 249 250 - Preserves exit status on VMS [Craig Berry] 251 252 - Fix Win32 split_like_shell escaping [Christian Walde] 253 2540.27_05 - Wed Jul 28 15:29:59 EDT 2010 255 256 Fixed: 257 258 - Tests no longer fail if user has set the CC environment variable 259 2600.27_04 - Mon Jul 26 22:41:43 EDT 2010 261 262 Added: 263 - handle c compiler and c++ compiler separately 264 (adds requirement for IPC::Cmd) [Jens Rehsack] 265 266 Others: 267 - rely on File::Temp::tempfile and File::Spec::tmpdir to 268 get unique file name for checking for compiler 269 [Jens Rehsack] 270 271 - Code base modernization and substantial code coverage improvments 272 [Jim Keenan] 273 2740.2703 - Tue Mar 16 17:10:55 EDT 2010 275 276 Bugs fixed: 277 - fixed tests for Windows and MSVC [Jan Dubois] 278 2790.2702 - Mon Feb 22 15:10:52 EST 2010 280 281 Bugs fixed: 282 - compile() changes in 0.2701 did not work on Windows. Now fixed. 283 2840.2701 - Tue Feb 16 09:12:45 EST 2010 285 286 Bugs fixed: 287 - compile() now accepts both string & array for 'include_dirs' 288 argument, as documented.(RT#54606) [Alberto Simões] 289 2900.27 - Thu Oct 29 21:29:56 EDT 2009 291 292 Other: 293 - Removed Build.PL to avoid creating a circular dependency 294 - Added version numbers to Windows compiler driver modules 295 2960.26_05 - Sun Oct 25 17:29:02 EDT 2009 297 298 Bugs fixed: 299 - Fixed t/02link.t failures on cygwin with Perl 5.8 [David Golden] 300 301 Other: 302 - Made have_compiler (and have_cplusplus) quiet without echoing 303 the test command to STDOUT [David Golden] 304 3050.26_04 - Mon Oct 19 21:57:46 EDT 2009 306 307 Enhancements: 308 - Added 'have_cplusplus()' method to check for C++ support 309 - Added patches for building Perl with mingw64 [Sisyphus] 310 - Allow CC environment variable to override $Config{cc} 311 312 Bugs fixed: 313 - Fixed link executable command for Win32 MSVC (RT#40819) [Cosimo 314 Streppone] 315 - Removed MSVC version check when embedding a manifest file 316 (RT #43002) [Steve Hay] 317 318 Other: 319 - Split Windows compiler driver packages into individual *.pm files 320 3210.260301 - Sat Aug 29 11:04:41 EDT 2009 322 323 Bugs fixed: 324 - Fixed linking error on Win32 with gcc compiler (RT#49000) 325 [kmx] 326 3270.2603 - Sat Jul 18 06:56:06 EDT 2009 328 329 Bugs fixed: 330 - Makefile.PL had wrong INSTALLDIRS setting for older Perls 331 (RT#47985) [David Golden] 332 3330.2602 - Sat Jul 4 10:57:12 EDT 2009 334 335 Bugs fixed: 336 - Fixed 00-have-compiler.t if $^X is a relative path [David Wheeler] 337 3380.2601 - Wed Jul 1 09:37:39 EDT 2009 339 340 Bugs fixed: 341 - On VMS, cleans up extra files generated during testing 342 [John E. Malmberg, Craig Berry] 343 3440.26 - Mon Jun 29 20:11:52 EDT 2009 345 346 - No changes from 0.25_01 347 3480.25_01 - Sat Jun 27 23:13:20 EDT 2009 349 350 - Changed test library to Test::More 351 352 - Added tests for have_compiler 353 354 - Skips tests that need a compiler if have_compiler is false 355 356 - have_compiler will try to compile in the current directory 357 if compiling in tmpdir fails for whatever reason 358 3590.25 - Fri Jun 26 16:18:13 EDT 2009 360 361 - Slight diagnostic improvements in link.t 362 3630.24_01 - Sun Mar 8 14:50:10 2009 364 365 - On Windows, don't generate "mt" command when CRT is statically 366 linked. [Jan Dubois] 367 368 - On Cygwin, examine $Config{useshrplib} to see whether we're 369 supposed to be linking with a shared perl library or not. [Reini 370 Urban] 371 372 - In link_executable() on Cygwin, trust $Config{ld} rather than using 373 $Config{cc} for linking. [Reini Urban] 374 375 - Add 'haiku' as a Unix-like platform. [Ingo Weinhold] 376 3770.24 - Fri Aug 15 22:01:48 2008 378 379 - Added 'gnu' and 'gnukfreebsd' as Unix variants. [Niko Tyni] 380 381 - Brought in some VMS fixes from bleadperl: "Correct and complete 382 CBuilder's handling of external libraries when linking on VMS." 383 [Craig Berry] 384 3850.23 - Sat Apr 19 22:28:03 2008 386 387 - Fixed some problems (some old, some new) with Strawberry Perl on 388 Windows. [Alberto Simo~es] 389 390 - Will now install in the core perl lib directory when the user's 391 perl is new enough to have us in core. [Yi Ma Mao] 392 3930.22 - Fri Feb 8 21:52:21 2008 394 395 - Replaced the split_like_shell() method on Windows with a 396 near-no-op, which is probably more correct and has the benefit of 397 not messing up UNC paths. [John R. LoVerso, see 398 http://rt.cpan.org/Ticket/Display.html?id=26545] 399 400 - Fixed extra_compiler_flags on Windows, they were being 401 ignored. [Robert May] 402 4030.21 - Tue Oct 30 06:46:01 2007 404 405 - Clean up perl_src path using Cwd::realpath(). Only affects usage 406 as part of the perl core. 407 408 - Protect $., $@, $!, $^E, and $? from any clobbering that might 409 occur in our DESTROY method. [Zefram] 410 411 - From bleadperl, a patch to clean up debug symbol files (.pdb for 412 VC++, .tds for BCC) when running have_compiler(). [Steve Hay & 413 Steve Peters] 414 4150.19 - Sun May 13 14:29:18 2007 416 417 - When building as part of the perl core (so this is irrelevant for 418 people downloading from CPAN) we now try a little harder to find 419 the perl sources. [Jos Boumans] 420 421 - Fixed a part of the manifest thingy that got broken on 64-bit 422 Windows platforms in version 0.18. [Steve Hay, Jan Dubois] 423 4240.18 - Mon Mar 26 21:29:09 2007 425 426 - Various OS/2 fixes: 427 + Put .LIB file near .DEF file 428 + Got library-file building working better 429 + Handled libperl_overrides better 430 [Ilya Zakharevich] 431 432 - On Windows: embed manifest files in DLLs built with Module-Build 433 when using VC8. [Steve Hay] 434 435 - Added a workaround for a config error on dec_osf: the linker is 436 $Config{cc}, not $Config{ld}. [Jarkko Hietaniemi] 437 438 - Borland's compiler "response files" will not pass through macro 439 definitions that contain quotes. The quotes get stripped and there 440 seems to be no way to escape them. So we leave macros on the 441 command line. [Randy W. Sims] 442 4430.18 Sat Mar 25 13:35:47 CST 2006 444 445 - Yet more fixes for arg_defines() on VMS. [Craig A. Berry and John 446 E. Malmberg] 447 4480.17 Wed Mar 15 22:46:15 CST 2006 449 450 - When we're being run from an uninstalled perl distribution 451 (e.g. one that's in the process of being built and tested), we 452 search for perl first in the current working directory. [Randy 453 Sims] 454 455 - More fixing of the arg_defines() method on VMS. [Craig A. Berry and 456 John E. Malmberg] 457 4580.16 Mon Mar 13 17:08:21 CST 2006 459 460 - Fix quoting of command line arguments on Windows. [Yitzchak 461 Scott-Thoennes] 462 463 - Provided a custom arg_defines() on VMS that does essentially the 464 same thing for /define that version 0.14 did for /include. [Craig 465 A. Berry] 466 467 - Documented the existing 'quiet' parameter, which silences the 468 printing of system() commands. [Suggested by Yitzchak 469 Scott-Thoennes] 470 4710.15 Mon Oct 3 17:10:32 CDT 2005 472 473 - Several OS/2 fixes have been made, including: 1) adding the 474 necessary version string to DLLs, 2) passing the executable's name 475 to 'ldopts' without the .exe extension, 3) avoiding calling 'env' 476 via the 'shrpenv' thingy, since it triggers a fork() bug. [Ilya 477 Zakharevich] 478 479 - Integrate a couple cleanup-related changes from bleadperl that 480 somehow never got into this copy. [Steve Hay] 481 482 - Added a new 'defines' parameter to compile(), which gives a 483 platform-independent way to specify various -Dfoo=bar (or the 484 equivalent) compiler defines. [Randy W. Sims] 485 4860.14 Mon Sep 19 13:40:37 CDT 2005 487 488 - Several fixes have been made for VMS, including: 1) there can only 489 be one /include qualifier, so merge multiple /includes into one; 2) 490 make sure the executable is named the same way that dynaloader will 491 look for it; 3) make sure the option files for the exported symbols 492 and the PERLSHR image are passed properly to the linker. [John 493 E. Malmberg] 494 4950.13 Wed Aug 24 20:05:59 CDT 2005 496 497 - Several temporary files weren't being cleaned up during testing, 498 because the 'cleanup' mechanism was never properly implemented. 499 This is now fixed. [Steve Hay] 500 5010.12 Mon May 30 16:40:10 CDT 2005 502 503 - In order to integrate into the perl core, patches were contributed 504 that a) put a $VERSION variable in each .pm file, b) add a 'quiet' 505 parameter to new() to shut up some of the command-echoing, c) 506 checks for the perl source headers in the CORE/ directory in the 507 perl source tree, not in the post-installation location, and d) 508 adjusts the CWD when running the regression tests under the perl 509 core. [Yitzchak Scott-Thoennes] 510 511 - Various parts of the code were looking for the CORE/ directory in 512 $Config{archlib}, $Config{installarchlib}, and $Config{archlibexp}. 513 Only the latter is correct, so we use that everywhere now. 514 [Curt Tilmes] 515 516 - For Unix-ish platforms, link_executable() will now prefer 517 $Config{cc} to $Config{ld}, because that typically works 518 better. [Jarkko Hietaniemi and H.Merijn Brand] 519 520 - Prelinking (invoking ExtUtils::Mksymlists to create options-files) 521 is now only done when we're building dynamic libraries. [Yitzchak 522 Scott-Thoennes] 523 5240.11 Tue Apr 5 20:58:41 CDT 2005 525 526 - Added a licensing statement to CBuilder.pm. [Spotted by Chip 527 Salzenberg] 528 5290.10 Mon Mar 14 20:18:19 CST 2005 530 531 - Split out a few simple routines that format how compile switches 532 are formatted, so that we can override them for platforms like VMS 533 where they're very different. 534 535 - Fix compile() and link() on VMS. [Help from Michael Schwern and 536 Peter Prymmer] 537 5380.09 Tue Feb 8 17:57:41 CST 2005 539 540 - Fixed a broken link_executable() method on cygwin - it now uses 541 'gcc' instead of $Config{ld} for the linking, because the latter is 542 actually a shell script which calls a perl script which calls gcc 543 in a way that only works for creating shared libraries, not 544 executables. 545 5460.08 Tue Jan 18 21:54:11 CST 2005 547 548 - Fixed a testing error in which I had the prototype wrong for the 549 main() function. [Jose Pedro Oliveira] 550 5510.07 Wed Jan 12 21:50:34 CST 2005 552 553 - Added the link_executable() method, which provides the ability to 554 create standalone executables. This is NOT yet implemented on 555 Windows, and therefore the tests for it are skipped on Win32. 556 [Alberto Manuel Brandao Simoes] 557 558 - Integrated the latest split_like_shell() for Windows from 559 Module::Build (really need to find a better home for this code...), 560 which now does a much better job of handling quotes and backslashes 561 and so on. [Randy Sims] 562 563 - Fixed a couple of Windows problems related to the output-file name 564 in link(), and some clobbering of the 'include_dirs' parameter to 565 compile(). [Randy Sims] 566 5670.06 Mon Dec 27 22:51:36 CST 2004 568 569 - Fixed a bug on Unix environments in which our work-around for 570 shell-commands like "FOO=BAR cc" (which is supposed to be turned 571 into "env FOO=BAR cc" to actually work) wasn't being called. 572 5730.05 Wed Oct 13 23:09:09 CDT 2004 574 575 - Fixed a bug in split_like_shell() in which leading whitespace was 576 creating an empty word, manifesting as something like "gcc - no 577 such file or directory" during tests. [Spotted by Warren L. Dodge] 578 579 - Incorporate another split_like_shell() fix from Module::Build. 580 5810.04 Sun Oct 10 00:31:08 CDT 2004 582 583 - Changed the split_like_shell() method to use the shellwords() 584 function from Text::ParseWords (a core module since 5.0), which 585 does a much better job than the split() we were using. 586 587 5880.03 Fri May 14 23:12:23 CDT 2004 589 590 - Fixed minor problems with the Build.PL file, the module names 591 should be quoted. 592 593 - The VMS module declared itself with the wrong package name. 594 595 5960.02 Fri Feb 20 10:17:40 CST 2004 597 598 - Fixed a bug in .../Platform/Windows.pm, in which compile() was 599 ignoring an 'include_dirs' argument. [Randy Sims] 600 601 - Fixed a bug in .../Platform/Windows.pm, in which output files were 602 being created in the root directory \ when they should be created 603 in the current directory. [Randy Sims] 604 605 6060.01 Mon Jan 12 08:12:35 CST 2004 607 608 - Original release, taken from Module::Build's C-building code, with 609 patching help from Randy Sims. 610