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