Lines Matching +full:build +full:- +full:linux +full:- +full:gcc
1 ## -*- mode: perl; -*-
8 if (`nasm -v 2>NUL` =~ /NASM version ([0-9]+\.[0-9]+)/ && $1 >= 2.0) {
10 ASFLAGS => "-g",
11 asflags => "-Ox -f win64 -DNEAR",
12 asoutflag => "-o ",
22 $die->("NASM not found - make sure it's installed and available on %PATH%\n");
36 my $ver=`nasm -v 2>NUL`;
37 my $vew=`nasmw -v 2>NUL`;
41 asflags => "-f win32",
42 asoutflag => "-o ",
52 $die->("NASM not found - make sure it's installed and available on %PATH%\n");
67 $die->('%OSVERSION% is not defined') if (!defined(env('OSVERSION')));
68 $die->('%PLATFORM% is not defined') if (!defined(env('PLATFORM')));
69 $die->('%TARGETCPU% is not defined') if (!defined(env('TARGETCPU')));
77 if ($wcevers =~ /^WCE([1-9])([0-9]{2})$/) {
81 $die->('%OSVERSION% value is insane');
85 my $wcecdefs = "-D_WIN32_WCE=$wcevernum -DUNDER_CE=$wcevernum"; # -D_WIN32_WCE=NNN
90 $wceplatf =~ tr/a-z0-9 /A-Z0-9_/;
91 $wcecdefs .= " -DWCE_PLATFORM_$wceplatf";
95 /^X86/ && do { $wcecdefs.=" -Dx86 -D_X86_ -D_i386_ -Di_386_";
97 /^ARMV4[IT]/ && do { $wcecdefs.=" -DARM -D_ARM_ -D$wcetgt";
98 $wcecdefs.=" -DTHUMB -D_THUMB_" if($wcetgt=~/T$/);
99 $wcecdefs.=" -QRarch4T -QRinterwork-return";
101 /^ARM/ && do { $wcecdefs.=" -DARM -D_ARM_ -D$wcetgt";
103 /^MIPSIV/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000 -D$wcetgt";
104 $wcecdefs.=" -D_MIPS64 -QMmips4 -QMn32";
106 /^MIPS16/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000 -D$wcetgt";
107 $wcecdefs.=" -DMIPSII -QMmips16";
109 /^MIPSII/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000 -D$wcetgt";
110 $wcecdefs.=" -QMmips2";
112 /^R4[0-9]{3}/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000";
114 /^SH[0-9]/ && do { $wcecdefs.=" -D$wcetgt -D_${wcetgt}_ -DSHx";
115 $wcecdefs.=" -Qsh4" if ($wcetgt =~ /^SH4/);
117 { $wcecdefs.=" -D$wcetgt -D_${wcetgt}_";
130 my $pointer_size_str = $config{target} =~ m|-p(\d+)$| ? $1 : "";
135 if (%$vms_info && $vms_info->{pointer_size} ne $pointer_size_str) {
140 $vms_info->{disable_warns} = [
143 $vms_info->{pointer_size} = $pointer_size_str;
147 push @{$vms_info->{disable_warns}}, "MAYLOSEDATA3";
153 if (defined($disabled{"zlib-dynamic"})) {
154 $vms_info->{zlib} = $withargs{zlib_lib} || "$default_zlib/SHARE";
156 $vms_info->{def_zlib} = $withargs{zlib_lib} || $default_zlib;
157 # In case the --with-zlib-lib value contains something like
159 $vms_info->{def_zlib} =~ s|/.*$||g;
163 if ($config{target} =~ /-ia64/) {
164 `PIPE ias -H 2> NL:`;
166 $vms_info->{AS} = "ias";
167 $vms_info->{ASFLAGS} = '-d debug';
168 $vms_info->{asflags} = '"-N" vms_upcase';
169 $vms_info->{asoutflag} = "-o ";
170 $vms_info->{perlasm_scheme} = "ias";
179 #### Basic configs that should work on any 32-bit box
180 "gcc" => {
182 CC => "gcc",
183 CFLAGS => picker(debug => "-O0 -g",
184 release => "-O3"),
191 CFLAGS => "-O",
196 "vos-gcc" => {
198 CC => "gcc",
199 CFLAGS => picker(default => "-Wall",
200 debug => "-O0 -g",
201 release => "-O3"),
202 cppflags => "-D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES",
203 lib_cppflags => "-DB_ENDIAN",
206 lflags => add("-Wl,-map"),
212 "solaris-common" => {
215 lib_cppflags => "-DFILIO_H",
216 ex_libs => add("-lsocket -lnsl -ldl"),
221 "solaris-common-cc" => {
222 inherit_from => [ "solaris-common" ],
225 shared_ldflag => "-Wl,-Bsymbolic",
226 shared_defflag => "-Wl,-M,",
227 shared_sonameflag=> "-Wl,-h,",
230 "solaris-common-gcc" => {
231 inherit_from => [ "solaris-common" ],
233 shared_target => "solaris-gcc-shared", # The rest is on shared_info.pl
236 "solaris-x86-gcc" => {
239 # failures [at least] in 32-bit build.
240 inherit_from => [ "solaris-common-gcc" ],
241 CC => "gcc",
242 CFLAGS => add_before(picker(default => "-Wall",
243 debug => "-O0 -g",
244 release => "-O3 -fomit-frame-pointer")),
245 cflags => add(threads("-pthread")),
246 lib_cppflags => add("-DL_ENDIAN"),
247 ex_libs => add(threads("-pthread")),
249 shared_cflag => "-fPIC",
250 shared_ldflag => add_before("-shared -static-libgcc"),
254 "solaris64-x86_64-gcc" => {
255 # -shared -static-libgcc might appear controversial, but modules
259 # gcc shared build with Sun C. Given that gcc generates faster
261 # to consider using gcc shared build even with vendor compiler:-)
262 # -- <appro@openssl.org>
263 inherit_from => [ "solaris-common-gcc" ],
264 CC => "gcc",
265 CFLAGS => add_before(picker(default => "-Wall",
266 debug => "-O0 -g",
267 release => "-O3")),
268 cflags => add_before("-m64", threads("-pthread")),
269 lib_cppflags => add("-DL_ENDIAN"),
270 ex_libs => add(threads("-pthread")),
274 shared_cflag => "-fPIC",
275 shared_ldflag => add_before("-shared -static-libgcc"),
280 # There used to be solaris-x86-cc target, but it was removed,
282 # with -KPIC flag. As result it, assembly support, was not even
283 # available as option. But its lack means lack of side-channel
285 # standards. Fortunately gcc is readily available prepackaged
288 # On related note, solaris64-x86_64-cc target won't compile code
289 # paths utilizing AVX and post-Haswell instruction extensions.
290 # Consider switching to solaris64-x86_64-gcc even here...
292 "solaris64-x86_64-cc" => {
293 inherit_from => [ "solaris-common-cc" ],
295 CFLAGS => add_before(picker(debug => "-g",
296 release => "-xO5 -xdepend -xbuiltin")),
297 cflags => add_before("-xarch=generic64 -xstrconst -Xa"),
298 cppflags => add(threads("-D_REENTRANT")),
299 lib_cppflags => add("-DL_ENDIAN"),
301 lflags => add(threads("-mt")),
302 ex_libs => add(threads("-lpthread")),
306 shared_cflag => "-KPIC",
307 shared_ldflag => add_before("-G -dy -z text"),
312 "solaris-sparcv7-gcc" => {
313 inherit_from => [ "solaris-common-gcc" ],
314 CC => "gcc",
315 CFLAGS => add_before(picker(default => "-Wall",
316 debug => "-O0 -g",
317 release => "-O3")),
318 cflags => add(threads("-pthread")),
319 lib_cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
320 ex_libs => add(threads("-pthread")),
322 shared_cflag => "-fPIC",
323 shared_ldflag => add_before("-shared"),
325 "solaris-sparcv8-gcc" => {
326 inherit_from => [ "solaris-sparcv7-gcc" ],
327 cflags => add_before("-mcpu=v8"),
331 "solaris-sparcv9-gcc" => {
332 # -m32 should be safe to add as long as driver recognizes
333 # -mcpu=ultrasparc
334 inherit_from => [ "solaris-sparcv7-gcc" ],
335 cflags => add_before("-m32 -mcpu=ultrasparc"),
339 "solaris64-sparcv9-gcc" => {
340 inherit_from => [ "solaris-sparcv9-gcc" ],
341 cflags => sub { my $f=join(" ",@_); $f =~ s/\-m32/-m64/; $f; },
348 # SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
349 # SC5.0 note: Compiler common patch 107357-01 or later is required!
350 "solaris-sparcv7-cc" => {
351 inherit_from => [ "solaris-common-cc" ],
353 CFLAGS => add_before(picker(debug => "-g",
354 release => "-xO5 -xdepend")),
355 cflags => add_before("-xstrconst -Xa"),
356 cppflags => add(threads("-D_REENTRANT")),
357 lib_cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
358 lflags => add(threads("-mt")),
359 ex_libs => add(threads("-lpthread")),
361 shared_cflag => "-KPIC",
362 shared_ldflag => add_before("-G -dy -z text"),
365 "solaris-sparcv8-cc" => {
366 inherit_from => [ "solaris-sparcv7-cc" ],
367 cflags => add_before("-xarch=v8"),
371 "solaris-sparcv9-cc" => {
372 inherit_from => [ "solaris-sparcv7-cc" ],
373 cflags => add_before("-xarch=v8plus"),
377 "solaris64-sparcv9-cc" => {
378 inherit_from => [ "solaris-sparcv7-cc" ],
379 cflags => add_before("-m64 -xarch=sparc"),
388 "irix-common" => {
391 cppflags => threads("-D_SGI_MP_SOURCE"),
392 lib_cppflags => "-DB_ENDIAN",
393 ex_libs => add(threads("-lpthread")),
397 shared_ldflag => "-shared -Wl,-Bsymbolic",
398 shared_sonameflag=> "-Wl,-soname,",
400 "irix-mips3-gcc" => {
401 inherit_from => [ "irix-common" ],
402 CC => "gcc",
403 CFLAGS => picker(debug => "-g -O0",
404 release => "-O3"),
405 LDFLAGS => "-static-libgcc",
406 cflags => "-mabi=n32",
412 "irix-mips3-cc" => {
413 inherit_from => [ "irix-common" ],
415 CFLAGS => picker(debug => "-g -O0",
416 release => "-O2"),
417 cflags => "-n32 -mips3 -use_readonly_const -G0 -rdata_shared",
424 "irix64-mips4-gcc" => {
425 inherit_from => [ "irix-common" ],
426 CC => "gcc",
427 CFLAGS => picker(debug => "-g -O0",
428 release => "-O3"),
429 LDFLAGS => "-static-libgcc",
430 cflags => "-mabi=64 -mips4",
436 "irix64-mips4-cc" => {
437 inherit_from => [ "irix-common" ],
439 CFLAGS => picker(debug => "-g -O0",
440 release => "-O2"),
441 cflags => "-64 -mips4 -use_readonly_const -G0 -rdata_shared",
448 #### Unified HP-UX ANSI C configs.
450 # - Originally we were optimizing at +O4 level. It should be noted
451 # that the only difference between +O3 and +O4 is global inter-
453 # stage the compiler leaves behind certain pseudo-code in lib*.a
458 # HP-UX data set size limit (infamous 'maxdsiz' tunable) of 64MB
461 # - Keep in mind that the HP compiler by default generates code
463 # If the toolkit is meant to be used on various PA-RISC processors
464 # consider './Configure hpux-parisc-[g]cc +DAportable'.
465 # - -DMD32_XARRAY triggers workaround for compiler bug we ran into in
466 # 32-bit message digests. (For the moment of this writing) HP C
468 # chew forever:-). For more details look-up MD32_XARRAY comment in
470 # - originally there were 32-bit hpux-parisc2-* targets. They were
471 # scrapped, because a) they were not interchangeable with other 32-bit
472 # targets; b) performance-critical 32-bit assembly modules implement
473 # even PA-RISC 2.0-specific code paths, which are chosen at run-time,
474 # thus adequate performance is provided even with PA-RISC 1.1 build.
475 "hpux-common" => {
480 lib_cppflags => "-DB_ENDIAN",
482 dso_scheme => "dlfcn", # overridden in 32-bit PA-RISC builds
484 bin_lflags => "-Wl,+s,+cdp,../:,+cdp,./:",
485 shared_ldflag => "-Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+cdp,../:,+cdp,./:",
486 shared_sonameflag=> "-Wl,+h,",
488 "hpux-parisc-gcc" => {
489 inherit_from => [ "hpux-common" ],
490 CC => "gcc",
491 CFLAGS => picker(debug => "-O0 -g",
492 release => "-O3"),
493 cflags => add(threads("-pthread")),
494 lib_cppflags => add("-DBN_DIV2W"),
495 ex_libs => add("-ldld", threads("-pthread")),
498 shared_cflag => "-fPIC",
499 shared_ldflag => add_before("-shared"),
502 "hpux-parisc1_1-gcc" => {
503 inherit_from => [ "hpux-parisc-gcc" ],
508 "hpux64-parisc2-gcc" => {
509 inherit_from => [ "hpux-common" ],
510 CC => "gcc",
511 CFLAGS => combine(picker(debug => "-O0 -g",
512 release => "-O3")),
513 cflags => add(threads("-pthread")),
514 ex_libs => add("-ldl", threads("-pthread")),
518 shared_cflag => "-fpic",
519 shared_ldflag => add_before("-shared"),
525 "hpux-parisc-cc" => {
526 inherit_from => [ "hpux-common" ],
528 CFLAGS => picker(debug => "+O0 +d -g",
530 cflags => "+Optrs_strongly_typed -Ae +ESlit",
531 cppflags => threads("-D_REENTRANT"),
532 lib_cppflags => add("-DBN_DIV2W -DMD32_XARRAY"),
533 ex_libs => add("-ldld", threads("-lpthread")),
537 shared_ldflag => add_before("-b"),
540 "hpux-parisc1_1-cc" => {
541 inherit_from => [ "hpux-parisc-cc" ],
547 "hpux64-parisc2-cc" => {
548 inherit_from => [ "hpux-common" ],
550 CFLAGS => picker(debug => "+O0 +d -g",
552 cflags => "+DD64 +Optrs_strongly_typed -Ae +ESlit",
553 cppflags => threads("-D_REENTRANT") ,
554 lib_cppflags => add("-DMD32_XARRAY"),
555 ex_libs => add("-ldl", threads("-lpthread")),
560 shared_ldflag => add_before("-b"),
565 # HP/UX IA-64 targets
566 "hpux-ia64-cc" => {
567 inherit_from => [ "hpux-common" ],
569 CFLAGS => picker(debug => "+O0 +d -g",
571 cflags => "-Ae +DD32 +Olit=all -z",
572 cppflags => add(threads("-D_REENTRANT")),
573 ex_libs => add("-ldl", threads("-lpthread")),
578 shared_ldflag => add_before("-b"),
581 "hpux64-ia64-cc" => {
582 inherit_from => [ "hpux-common" ],
584 CFLAGS => picker(debug => "+O0 +d -g",
586 cflags => "-Ae +DD64 +Olit=all -z",
587 cppflags => threads("-D_REENTRANT"),
588 ex_libs => add("-ldl", threads("-lpthread")),
593 shared_ldflag => add_before("-b"),
596 # GCC builds...
597 "hpux-ia64-gcc" => {
598 inherit_from => [ "hpux-common" ],
599 CC => "gcc",
600 CFLAGS => picker(debug => "-O0 -g",
601 release => "-O3"),
602 cflags => add(threads("-pthread")),
603 ex_libs => add("-ldl", threads("-pthread")),
607 shared_cflag => "-fpic",
608 shared_ldflag => add_before("-shared"),
611 "hpux64-ia64-gcc" => {
612 inherit_from => [ "hpux-common" ],
613 CC => "gcc",
614 CFLAGS => picker(debug => "-O0 -g",
615 release => "-O3"),
616 cflags => combine("-mlp64", threads("-pthread")),
617 ex_libs => add("-ldl", threads("-pthread")),
621 shared_cflag => "-fpic",
622 shared_ldflag => add_before("-shared"),
627 "MPE/iX-gcc" => {
629 CC => "gcc",
630 CFLAGS => "-O3",
631 cppflags => "-D_POSIX_SOURCE -D_SOCKET_SOURCE",
633 lib_cppflags => "-DBN_DIV2W",
635 lflags => add("-L/SYSLOG/PUB"),
636 ex_libs => add("-lsyslog -lsocket -lcurses"),
642 #### and forward. In reality 'uname -s' still returns "OSF1". Originally
643 #### there were even osf1-* configs targeting prior versions provided,
645 "tru64-alpha-gcc" => {
647 CC => "gcc",
648 CFLAGS => "-O3",
649 cflags => add("-std=c9x", threads("-pthread")),
650 cppflags => "-D_XOPEN_SOURCE=500 -D_OSF_SOURCE",
651 ex_libs => add("-lrt", threads("-pthread")), # for mlock(2)
657 shared_target => "alpha-osf1-shared",
660 "tru64-alpha-cc" => {
663 CFLAGS => "-tune host -fast",
664 cflags => add("-std1 -readonly_strings",
665 threads("-pthread")),
666 cppflags => "-D_XOPEN_SOURCE=500 -D_OSF_SOURCE",
667 ex_libs => add("-lrt", threads("-pthread")), # for mlock(2)
673 shared_target => "alpha-osf1-shared",
674 shared_ldflag => "-msym",
679 #### Variety of LINUX:-)
681 # *-generic* is endian-neutral target, but ./config is free to
682 # throw in -D[BL]_ENDIAN, whichever appropriate...
683 "linux-generic32" => {
685 CC => "gcc",
687 CFLAGS => picker(default => "-Wall",
688 debug => "-O0 -g",
689 release => "-O3"),
690 CXXFLAGS => picker(default => "-Wall",
691 debug => "-O0 -g",
692 release => "-O3"),
693 cflags => threads("-pthread"),
694 cxxflags => combine("-std=c++11", threads("-pthread")),
695 lib_cppflags => "-DOPENSSL_USE_NODELETE",
696 ex_libs => add("-ldl", threads("-pthread")),
700 shared_target => "linux-shared",
701 shared_cflag => "-fPIC",
702 shared_ldflag => sub { $disabled{pinshared} ? () : "-Wl,-znodelete" },
705 "linux-latomic" => {
706 inherit_from => [ "linux-generic32" ],
707 ex_libs => add(threads("-latomic")),
709 "linux-generic64" => {
710 inherit_from => [ "linux-generic32" ],
714 "linux-ppc" => {
715 inherit_from => [ "linux-latomic" ],
718 lib_cppflags => add("-DB_ENDIAN"),
720 "linux-ppc64" => {
721 inherit_from => [ "linux-generic64" ],
722 cflags => add("-m64"),
723 cxxflags => add("-m64"),
724 lib_cppflags => add("-DB_ENDIAN"),
729 "linux-ppc64le" => {
730 inherit_from => [ "linux-generic64" ],
731 cflags => add("-m64"),
732 cxxflags => add("-m64"),
733 lib_cppflags => add("-DL_ENDIAN"),
738 "linux-armv4" => {
740 # Note that -march is not among compiler options in linux-armv4
746 # performance, e.g. -march=armv6 or -march=armv7-a;
747 # c) build "universal" binary that targets *range* of platforms
752 # requirement for run-time switch between platform-specific
753 # code paths. And without run-time switch performance would be
756 # Most notably you can *not* build "universal" binary for
757 # big-endian platform. This is because ARMv7 processor always
758 # picks instructions in little-endian order. Another similar
759 # limitation is that -mthumb can't "cross" -march=armv6t2
760 # boundary, because that's where it became Thumb-2. Well, this
766 # "universal" build:
768 # ./Configure linux-armv4 -march=armv6 -D__ARM_MAX_ARCH__=8
770 inherit_from => [ "linux-latomic" ],
774 "linux-aarch64" => {
775 inherit_from => [ "linux-generic64" ],
779 "linux-arm64ilp32" => { # https://wiki.linaro.org/Platform/arm64-ilp32
780 inherit_from => [ "linux-generic32" ],
781 cflags => add("-mabi=ilp32"),
782 cxxflags => add("-mabi=ilp32"),
787 "linux-arm64ilp32-clang" => { # clang config abi by --target
788 inherit_from => [ "linux-generic32" ],
795 "linux-mips32" => {
796 # Configure script adds minimally required -march for assembly
797 # support, if no -march was specified at command line.
798 inherit_from => [ "linux-latomic" ],
799 cflags => add("-mabi=32"),
800 cxxflags => add("-mabi=32"),
806 "linux-mips64" => {
807 inherit_from => [ "linux-latomic" ],
808 cflags => add("-mabi=n32"),
809 cxxflags => add("-mabi=n32"),
815 "linux64-mips64" => {
816 inherit_from => [ "linux-generic64" ],
817 cflags => add("-mabi=64"),
818 cxxflags => add("-mabi=64"),
826 "linux64-riscv64" => {
827 inherit_from => [ "linux-generic64"],
833 "linux64-loongarch64" => {
834 inherit_from => [ "linux-generic64"],
838 #### IA-32 targets...
839 #### These two targets are a bit aged and are to be used on older Linux
840 #### machines where gcc doesn't understand -m32 and -m64
841 "linux-elf" => {
842 inherit_from => [ "linux-generic32" ],
843 CFLAGS => add(picker(release => "-fomit-frame-pointer")),
844 lib_cppflags => add("-DL_ENDIAN"),
849 "linux-aout" => {
851 CC => "gcc",
852 CFLAGS => add(picker(default => "-Wall",
853 debug => "-O0 -g",
854 release => "-O3 -fomit-frame-pointer")),
855 lib_cppflags => add("-DL_ENDIAN"),
863 "linux-x86" => {
864 inherit_from => [ "linux-generic32" ],
865 CFLAGS => add(picker(release => "-fomit-frame-pointer")),
866 cflags => add("-m32"),
867 cxxflags => add("-m32"),
868 lib_cppflags => add("-DL_ENDIAN"),
873 "linux-x86-clang" => {
874 inherit_from => [ "linux-x86" ],
877 ex_libs => add(threads("-latomic")),
879 "linux-x86_64" => {
880 inherit_from => [ "linux-generic64" ],
881 cflags => add("-m64"),
882 cxxflags => add("-m64"),
883 lib_cppflags => add("-DL_ENDIAN"),
889 "linux-x86_64-clang" => {
890 inherit_from => [ "linux-x86_64" ],
894 "linux-x32" => {
895 inherit_from => [ "linux-generic32" ],
896 cflags => add("-mx32"),
897 cxxflags => add("-mx32"),
898 lib_cppflags => add("-DL_ENDIAN"),
905 "linux-ia64" => {
906 inherit_from => [ "linux-generic64" ],
912 "linux64-s390x" => {
913 inherit_from => [ "linux-generic64" ],
914 cflags => add("-m64"),
915 cxxflags => add("-m64"),
916 lib_cppflags => add("-DB_ENDIAN"),
921 "linux32-s390x" => {
923 # "Highgprs" is kernel feature first implemented in Linux
926 # upon 32-bit process context switch, but even on
928 # it possible to deploy 64-bit instructions even in legacy
930 # adequate] performance. The build is binary compatible with
931 # linux-generic32, and the idea is to be able to install the
933 # /lib/highgprs/libcrypto.so.x.y, for ldconfig and run-time
936 # sysdeps/s390/dl-procinfo.c affecting ldconfig and ld.so.1...
938 inherit_from => [ "linux-generic32" ],
939 cflags => add("-m31 -Wa,-mzarch"),
940 cxxflags => add("-m31 -Wa,-mzarch"),
941 lib_cppflags => add("-DB_ENDIAN"),
947 #### SPARC Linux setups
948 "linux-sparcv8" => {
949 inherit_from => [ "linux-latomic" ],
950 cflags => add("-mcpu=v8"),
951 cxxflags => add("-mcpu=v8"),
952 lib_cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
956 "linux-sparcv9" => {
957 # it's a real mess with -mcpu=ultrasparc option under Linux,
958 # but -Wa,-Av8plus should do the trick no matter what.
959 inherit_from => [ "linux-latomic" ],
960 cflags => add("-m32 -mcpu=ultrasparc -Wa,-Av8plus"),
961 cxxflags => add("-m32 -mcpu=ultrasparc -Wa,-Av8plus"),
962 lib_cppflags => add("-DB_ENDIAN -DBN_DIV2W"),
966 "linux64-sparcv9" => {
967 # GCC 3.1 is a requirement
968 inherit_from => [ "linux-generic64" ],
969 cflags => add("-m64 -mcpu=ultrasparc"),
970 cxxflags => add("-m64 -mcpu=ultrasparc"),
971 lib_cppflags => add("-DB_ENDIAN"),
972 ex_libs => add(threads("-latomic")),
979 "linux-alpha-gcc" => {
980 inherit_from => [ "linux-generic64" ],
981 lib_cppflags => add("-DL_ENDIAN"),
986 "linux-c64xplus" => {
990 CFLAGS => "-o2 -ox -ms",
991 cflags => "--linux -ea=.s -eo=.o -mv6400+ -pden",
992 cxxflags => "--linux -ea=.s -eo=.o -mv6400+ -pden",
993 cppflags => combine("-DOPENSSL_SMALL_FOOTPRINT",
994 threads("-D_REENTRANT")),
1000 shared_target => "linux-shared",
1001 shared_cflag => "--pic",
1002 shared_ldflag => add("-z --sysv --shared"),
1007 "BSD-generic32" => {
1009 # flags, which would cover all BSD flavors. -pthread applies
1011 # as -D_POSIX_THREAD -lc_r, which is sufficient. FreeBSD 4.x
1012 # expands it as -lc_r, which has to be accompanied by explicit
1013 # -D_THREAD_SAFE and sometimes -D_REENTRANT. FreeBSD 5.x
1014 # expands it as -lc_r, which seems to be sufficient?
1017 CFLAGS => picker(default => "-Wall",
1018 debug => "-O0 -g",
1019 release => "-O3"),
1020 cflags => threads("-pthread"),
1021 cppflags => threads("-D_THREAD_SAFE -D_REENTRANT"),
1022 ex_libs => add(threads("-pthread")),
1027 shared_target => "bsd-gcc-shared",
1028 shared_cflag => "-fPIC",
1030 "BSD-generic64" => {
1031 inherit_from => [ "BSD-generic32" ],
1035 "BSD-x86" => {
1036 inherit_from => [ "BSD-generic32" ],
1037 CFLAGS => add(picker(release => "-fomit-frame-pointer")),
1038 lib_cppflags => add("-DL_ENDIAN"),
1043 "BSD-x86-elf" => {
1044 inherit_from => [ "BSD-x86" ],
1048 "BSD-sparcv8" => {
1049 inherit_from => [ "BSD-generic32" ],
1050 cflags => add("-mcpu=v8"),
1051 lib_cppflags => add("-DB_ENDIAN"),
1055 "BSD-sparc64" => {
1056 # -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
1057 # simply *happens* to work around a compiler bug in gcc 3.3.3,
1059 inherit_from => [ "BSD-generic64" ],
1060 lib_cppflags => add("-DB_ENDIAN -DMD32_REG_T=int"),
1066 "BSD-ia64" => {
1067 inherit_from => [ "BSD-generic64" ],
1068 lib_cppflags => add("-DL_ENDIAN"),
1074 "BSD-x86_64" => {
1075 inherit_from => [ "BSD-generic64" ],
1076 lib_cppflags => add("-DL_ENDIAN"),
1082 "BSD-aarch64" => {
1083 inherit_from => [ "BSD-generic64" ],
1084 lib_cppflags => add("-DL_ENDIAN"),
1092 "BSD-riscv64" => {
1093 inherit_from => [ "BSD-generic64"],
1097 "bsdi-elf-gcc" => {
1099 CC => "gcc",
1100 CFLAGS => "-fomit-frame-pointer -O3 -Wall",
1101 lib_cppflags => "-DPERL5 -DL_ENDIAN",
1102 ex_libs => add("-ldl"),
1108 shared_target => "bsd-gcc-shared",
1109 shared_cflag => "-fPIC",
1114 # Originally we had like unixware-*, unixware-*-pentium, unixware-*-p6, etc.
1115 # Now we only have blended unixware-* as it's the only one used by ./config.
1117 # and './Configure unixware-7 -Kpentium_pro' or whatever appropriate.
1119 # lack of motivation to support out-of-date platforms with out-of-date
1122 # UnixWare 2.0x fails destest with -O.
1123 "unixware-2.0" => {
1126 cflags => threads("-Kthread"),
1127 lib_cppflags => "-DFILIO_H -DNO_STRINGS_H",
1128 ex_libs => add("-lsocket -lnsl -lresolv -lx"),
1131 "unixware-2.1" => {
1134 CFLAGS => "-O",
1135 cflags => threads("-Kthread"),
1136 lib_cppflags => "-DFILIO_H",
1137 ex_libs => add("-lsocket -lnsl -lresolv -lx"),
1140 "unixware-7" => {
1143 CFLAGS => "-O",
1144 cflags => combine("-Kalloca", threads("-Kthread")),
1145 lib_cppflags => "-DFILIO_H",
1146 ex_libs => add("-lsocket -lnsl"),
1150 perlasm_scheme => "elf-1",
1152 shared_target => "svr5-shared",
1153 shared_cflag => "-Kpic",
1155 "unixware-7-gcc" => {
1157 CC => "gcc",
1158 CFLAGS => "-O3 -fomit-frame-pointer -Wall",
1159 cppflags => add(threads("-D_REENTRANT")),
1160 lib_cppflags => add("-DL_ENDIAN -DFILIO_H"),
1161 ex_libs => add("-lsocket -lnsl"),
1165 perlasm_scheme => "elf-1",
1167 shared_target => "gnu-shared",
1168 shared_cflag => "-fPIC",
1170 # SCO 5 - Ben Laurie says the -O breaks the SCO cc.
1171 "sco5-cc" => {
1174 cflags => "-belf",
1175 ex_libs => add("-lsocket -lnsl"),
1178 perlasm_scheme => "elf-1",
1180 shared_target => "svr3-shared",
1181 shared_cflag => "-Kpic",
1183 "sco5-gcc" => {
1185 cc => "gcc",
1186 cflags => "-O3 -fomit-frame-pointer",
1187 ex_libs => add("-lsocket -lnsl"),
1191 perlasm_scheme => "elf-1",
1193 shared_target => "svr3-shared",
1194 shared_cflag => "-fPIC",
1201 # only in ./config. Once configured, build procedure remains "deaf" to
1203 "aix-common" => {
1207 lib_cppflags => "-DB_ENDIAN",
1208 lflags => "-Wl,-bsvr4",
1212 module_ldflags => "-Wl,-G,-bsymbolic,-bnoentry",
1213 shared_ldflag => "-Wl,-G,-bsymbolic,-bnoentry",
1214 shared_defflag => "-Wl,-bE:",
1215 shared_fipsflag => "-Wl,-binitfini:_init:_cleanup",
1218 "aix-gcc" => {
1219 inherit_from => [ "aix-common" ],
1220 CC => "gcc",
1221 CFLAGS => picker(debug => "-O0 -g",
1222 release => "-O"),
1223 cflags => add(threads("-pthread")),
1224 ex_libs => add(threads("-pthread")),
1228 shared_ldflag => add_before("-shared -static-libgcc"),
1229 AR => add("-X32"),
1230 RANLIB => add("-X32"),
1232 "aix64-gcc" => {
1233 inherit_from => [ "aix-common" ],
1234 CC => "gcc",
1235 CFLAGS => picker(debug => "-O0 -g",
1236 release => "-O"),
1237 cflags => combine("-maix64", threads("-pthread")),
1238 ex_libs => add(threads("-pthread")),
1242 shared_ldflag => add_before("-shared -static-libgcc"),
1244 AR => add("-X64"),
1245 RANLIB => add("-X64"),
1247 "aix64-gcc-as" => {
1248 inherit_from => [ "aix64-gcc" ],
1249 perlasm_scheme => "aix64-as",
1251 "aix-cc" => {
1252 inherit_from => [ "aix-common" ],
1254 CFLAGS => picker(debug => "-O0 -g",
1255 release => "-O"),
1256 cflags => combine("-q32 -qmaxmem=16384 -qro -qroconst",
1257 threads("-qthreaded")),
1258 cppflags => threads("-D_THREAD_SAFE"),
1259 ex_libs => add(threads("-lpthreads")),
1263 shared_cflag => "-qpic",
1264 AR => add("-X32"),
1265 RANLIB => add("-X32"),
1268 # If 17.1 openxl runtime is available, -latomic can be used
1269 # instead of -DBROKEN_CLANG_ATOMICS
1270 "aix-clang" => {
1271 inherit_from => [ "aix-common" ],
1272 CC => "ibm-clang",
1273 CFLAGS => picker(debug => "-O0 -g",
1274 release => "-O"),
1275 …cflags => combine("-Wno-implicit-function-declaration -mcmodel=large -DBROKEN_CLANG_ATOM…
1276 threads("-pthread")),
1277 ex_libs => add(threads("-pthread")),
1281 shared_cflag => "-fpic",
1282 shared_ldflag => add("-shared"),
1283 AR => add("-X32"),
1284 RANLIB => add("-X32"),
1286 "aix64-cc" => {
1287 inherit_from => [ "aix-common" ],
1289 CFLAGS => picker(debug => "-O0 -g",
1290 release => "-O"),
1291 cflags => combine("-q64 -qmaxmem=16384 -qro -qroconst",
1292 threads("-qthreaded")),
1293 cppflags => threads("-D_THREAD_SAFE"),
1294 ex_libs => add(threads("-lpthreads")),
1299 shared_cflag => "-qpic",
1301 AR => add("-X64"),
1302 RANLIB => add("-X64"),
1304 "aix64-clang" => {
1305 inherit_from => [ "aix-common" ],
1306 CC => "ibm-clang",
1307 CFLAGS => picker(debug => "-O0 -g",
1308 release => "-O"),
1309 cflags => combine("-maix64 -Wno-implicit-function-declaration -mcmodel=large",
1310 threads("-pthread")),
1311 ex_libs => add(threads("-pthread")),
1315 shared_cflag => "-fpic",
1316 shared_ldflag => add("-shared"),
1318 AR => add("-X64"),
1319 RANLIB => add("-X64"),
1322 # SIEMENS BS2000/OSD: an EBCDIC-based mainframe
1323 "BS2000-OSD" => {
1326 CFLAGS => "-O",
1327 cflags => "-XLLML -XLLMK -XL",
1328 cppflags => "-DCHARSET_EBCDIC",
1329 lib_cppflags => "-DB_ENDIAN",
1330 ex_libs => add("-lsocket -lnsl"),
1337 # Win64 targets, WIN64I denotes IA-64/Itanium and WIN64A - AMD64
1344 # Also note that we force threads no matter what. Configuring "no-threads"
1347 # UNICODE is defined in VC-common and applies to all targets. It used to
1348 # be an opt-in option for VC-WIN32, but not anymore. The original reason
1354 "VC-common" => {
1386 shared_target => "win-shared", # meaningless except it gives Configure a hint
1393 # additional parameter to build_scheme denotes install-path "flavour"
1394 build_scheme => add("VC-common", { separator => undef }),
1396 "VC-noCE-common" => {
1397 inherit_from => [ "VC-common" ],
1415 # non-shared build because static library is compiled with /Zl
1417 # shared build because multiple /MDd options are not prohibited.
1418 # But why /MDd in static build? Well, basically this is just a
1421 # Why not /MD in release build then? Well, some are likely to
1422 # prefer [non-debug] openssl.exe to be free from Micorosoft RTL
1435 "VC-WIN64-common" => {
1436 inherit_from => [ "VC-noCE-common" ],
1440 push @ex_libs, 'bufferoverflowu.lib' if (`cl 2>&1` =~ /14\.00\.4[0-9]{4}\./);
1445 "VC-WIN64I" => {
1446 inherit_from => [ "VC-WIN64-common" ],
1448 ASFLAGS => "-d debug",
1449 asoutflag => "-o ",
1454 multilib => "-ia64",
1456 "VC-WIN64A" => {
1457 inherit_from => [ "VC-WIN64-common" ],
1458 AS => sub { vc_win64a_info()->{AS} },
1459 ASFLAGS => sub { vc_win64a_info()->{ASFLAGS} },
1460 asoutflag => sub { vc_win64a_info()->{asoutflag} },
1461 asflags => sub { vc_win64a_info()->{asflags} },
1465 perlasm_scheme => sub { vc_win64a_info()->{perlasm_scheme} },
1466 multilib => "-x64",
1468 "VC-WIN32" => {
1469 inherit_from => [ "VC-noCE-common" ],
1470 AS => sub { vc_win32_info()->{AS} },
1471 ASFLAGS => sub { vc_win32_info()->{ASFLAGS} },
1472 asoutflag => sub { vc_win32_info()->{asoutflag} },
1473 asflags => sub { vc_win32_info()->{asflags} },
1478 perlasm_scheme => sub { vc_win32_info()->{perlasm_scheme} },
1479 # "WOW" stands for "Windows on Windows", and "VC-WOW" engages
1480 # some installation path heuristics in windows-makefile.tmpl...
1481 build_scheme => add("VC-WOW", { separator => undef }),
1483 "VC-CE" => {
1484 inherit_from => [ "VC-common" ],
1491 sub { vc_wince_info()->{cflags}; },
1492 sub { `cl 2>&1` =~ /Version ([0-9]+)\./ && $1>=14
1495 cppflags => sub { vc_wince_info()->{cppflags}; },
1497 lib_cppflags => sub { vc_wince_info()->{cppflags}; },
1504 lflags => add(combine(sub { vc_wince_info()->{lflags}; },
1515 if (-f "$x/env('TARGETCPU')/wcecompatex.lib") {
1531 "mingw-common" => {
1534 CC => "gcc",
1535 CFLAGS => picker(default => "-Wall",
1536 debug => "-g -O0",
1537 release => "-O3"),
1538 cppflags => combine("-DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN",
1539 threads("-D_MT")),
1540 lib_cppflags => "-DL_ENDIAN",
1541 ex_libs => add("-lws2_32 -lgdi32 -lcrypt32"),
1544 shared_target => "mingw-shared",
1546 shared_ldflag => "-static-libgcc",
1551 inherit_from => [ "mingw-common" ],
1552 CFLAGS => add(picker(release => "-fomit-frame-pointer")),
1553 cflags => "-m32",
1559 shared_rcflag => "--target=pe-i386",
1566 # mingw64 build, but it's not done, because until mingw64
1568 # consider its binaries for using with non-mingw64 run-time
1571 inherit_from => [ "mingw-common" ],
1572 cflags => "-m64",
1578 shared_rcflag => "--target=pe-x86-64",
1586 CFLAGS => "-O",
1587 lib_cppflags => "-DL_ENDIAN",
1590 "UEFI-x86" => {
1595 "UEFI-x86_64" => {
1605 CFLAGS => "-O -Wall",
1606 lib_cppflags => "-DTERMIOS -DL_ENDIAN",
1613 "Cygwin-common" => {
1617 CC => "gcc",
1618 CFLAGS => picker(default => "-Wall",
1619 debug => "-g -O0",
1620 release => "-O3"),
1621 lib_cppflags => "-DTERMIOS -DL_ENDIAN",
1625 shared_target => "cygwin-shared",
1626 shared_cppflags => "-D_WINDLL",
1630 "Cygwin-x86" => {
1631 inherit_from => [ "Cygwin-common" ],
1632 CFLAGS => add(picker(release => "-O3 -fomit-frame-pointer")),
1637 "Cygwin-x86_64" => {
1638 inherit_from => [ "Cygwin-common" ],
1639 CC => "gcc",
1646 inherit_from => [ "Cygwin-x86" ]
1649 "Cygwin-i386" => {
1650 inherit_from => [ "Cygwin-x86" ]
1652 "Cygwin-i486" => {
1653 inherit_from => [ "Cygwin-x86" ]
1655 "Cygwin-i586" => {
1656 inherit_from => [ "Cygwin-x86" ]
1658 "Cygwin-i686" => {
1659 inherit_from => [ "Cygwin-x86" ]
1663 "darwin-common" => {
1667 CFLAGS => picker(debug => "-g -O0",
1668 release => "-O3"),
1669 cppflags => threads("-D_REENTRANT"),
1670 lflags => add("-Wl,-search_paths_first"),
1676 ranlib => "ranlib -c",
1677 shared_target => "darwin-shared",
1678 shared_cflag => "-fPIC",
1681 # Option "freeze" such as -std=gnu9x can't negatively interfere
1684 "darwin-ppc-cc" => { inherit_from => [ "darwin-ppc" ] }, # Historic alias
1685 "darwin-ppc" => {
1686 inherit_from => [ "darwin-common" ],
1687 cflags => add("-arch ppc -std=gnu9x -Wa,-force_cpusubtype_ALL"),
1688 lib_cppflags => add("-DB_ENDIAN"),
1689 shared_cflag => add("-fno-common"),
1693 "darwin64-ppc-cc" => { inherit_from => [ "darwin64-ppc" ] }, # Historic alias
1694 "darwin64-ppc" => {
1695 inherit_from => [ "darwin-common" ],
1696 cflags => add("-arch ppc64 -std=gnu9x"),
1697 lib_cppflags => add("-DB_ENDIAN"),
1702 "darwin-i386-cc" => { inherit_from => [ "darwin-i386" ] }, # Historic alias
1703 "darwin-i386" => {
1704 inherit_from => [ "darwin-common" ],
1705 CFLAGS => add(picker(release => "-fomit-frame-pointer")),
1706 cflags => add("-arch i386"),
1707 lib_cppflags => add("-DL_ENDIAN"),
1712 "darwin64-x86_64-cc" => { inherit_from => [ "darwin64-x86_64" ] }, # Historic alias
1713 "darwin64-x86_64" => {
1714 inherit_from => [ "darwin-common" ],
1715 CFLAGS => add("-Wall"),
1716 cflags => add("-arch x86_64"),
1717 lib_cppflags => add("-DL_ENDIAN"),
1722 "darwin64-arm64-cc" => { inherit_from => [ "darwin64-arm64" ] }, # "Historic" alias
1723 "darwin64-arm64" => {
1724 inherit_from => [ "darwin-common" ],
1725 CFLAGS => add("-Wall"),
1726 cflags => add("-arch arm64"),
1727 lib_cppflags => add("-DL_ENDIAN"),
1734 "hurd-x86" => {
1736 CC => "gcc",
1737 CFLAGS => "-O3 -fomit-frame-pointer -Wall",
1738 cflags => threads("-pthread"),
1739 lib_cppflags => "-DL_ENDIAN",
1740 ex_libs => add("-ldl", threads("-pthread")),
1746 shared_target => "linux-shared",
1747 shared_cflag => "-fPIC",
1751 "vxworks-ppc60x" => {
1754 CFLAGS => "-O2 -Wall -fstrength-reduce",
1755 …cflags => "-mrtp -mhard-float -mstrict-align -fno-implicit-fp -fno-builtin -fno-strict-a…
1756 cppflags => combine("-D_REENTRANT -DPPC32_fp60x -DCPU=PPC32",
1757 "_DTOOL_FAMILY=gnu -DTOOL=gnu",
1758 "-I\$(WIND_BASE)/target/usr/h",
1759 "-I\$(WIND_BASE)/target/usr/h/wrn/coreip"),
1761 lflags => add("-L \$(WIND_BASE)/target/usr/lib/ppc/PPC32/common"),
1762 ex_libs => add("-Wl,--defsym,__wrs_rtp_base=0xe0000000"),
1764 "vxworks-ppcgen" => {
1767 CFLAGS => "-O1 -Wall",
1768 cflags => "-mrtp -msoft-float -mstrict-align -fno-builtin -fno-strict-aliasing",
1769 cppflags => combine("-D_REENTRANT -DPPC32 -DCPU=PPC32",
1770 "-DTOOL_FAMILY=gnu -DTOOL=gnu",
1771 "-I\$(WIND_BASE)/target/usr/h",
1772 "-I\$(WIND_BASE)/target/usr/h/wrn/coreip"),
1774 lflags => add("-L \$(WIND_BASE)/target/usr/lib/ppc/PPC32/sfcommon"),
1775 ex_libs => add("-Wl,--defsym,__wrs_rtp_base=0xe0000000"),
1777 "vxworks-ppc405" => {
1780 CFLAGS => "-g",
1781 cflags => "-msoft-float -mlongcall",
1782 cppflags => combine("-D_REENTRANT -DPPC32 -DCPU=PPC405",
1783 "-DTOOL_FAMILY=gnu -DTOOL=gnu",
1784 "-I\$(WIND_BASE)/target/h"),
1786 lflags => add("-r"),
1788 "vxworks-ppc750" => {
1791 CFLAGS => "-ansi -fvolatile -Wall \$(DEBUG_FLAG)",
1792 … cflags => "-nostdinc -fno-builtin -fno-for-scope -fsigned-char -msoft-float -mlongcall",
1793 cppflags => combine("-DPPC750 -D_REENTRANT -DCPU=PPC604",
1794 "-I\$(WIND_BASE)/target/h"),
1796 lflags => add("-r"),
1798 "vxworks-ppc750-debug" => {
1801 CFLAGS => "-ansi -fvolatile -Wall -g",
1802 … cflags => "-nostdinc -fno-builtin -fno-for-scope -fsigned-char -msoft-float -mlongcall",
1803 cppflags => combine("-DPPC750 -D_REENTRANT -DCPU=PPC604",
1804 "-DPEDANTIC -DDEBUG",
1805 "-I\$(WIND_BASE)/target/h"),
1807 lflags => add("-r"),
1809 "vxworks-ppc860" => {
1812 cflags => "-nostdinc -msoft-float",
1813 cppflags => combine("-DCPU=PPC860 -DNO_STRINGS_H",
1814 "-I\$(WIND_BASE)/target/h"),
1816 lflags => add("-r"),
1818 "vxworks-simlinux" => {
1821 …cflags => "-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -fno-builtin -fno-defer-…
1822 …cppflags => combine("-D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\"",
1823 "-DL_ENDIAN -DCPU=SIMLINUX -DNO_STRINGS_H",
1824 "-DTOOL_FAMILY=gnu -DTOOL=gnu",
1825 "-DOPENSSL_NO_HW_PADLOCK",
1826 "-I\$(WIND_BASE)/target/h",
1827 "-I\$(WIND_BASE)/target/h/wrn/coreip"),
1829 lflags => add("-r"),
1832 "vxworks-mips" => {
1835 CFLAGS => "-O -G 0",
1836 … => "-mrtp -mips2 -B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -msoft-float -mno…
1837 …cppflags => combine("-D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\"",
1838 "-DCPU=MIPS32 -DNO_STRINGS_H",
1839 "-DTOOL_FAMILY=gnu -DTOOL=gnu",
1840 "-DOPENSSL_NO_HW_PADLOCK",
1841 threads("-D_REENTRANT"),
1842 "-I\$(WIND_BASE)/target/h",
1843 "-I\$(WIND_BASE)/target/h/wrn/coreip"),
1845 lflags => add("-L \$(WIND_BASE)/target/usr/lib/mips/MIPSI32/sfcommon"),
1846 ex_libs => add("-Wl,--defsym,__wrs_rtp_base=0xe0000000"),
1854 "uClinux-dist" => {
1857 cppflags => threads("-D_REENTRANT"),
1862 shared_target => "linux-shared",
1863 shared_cflag => "-fPIC",
1866 "uClinux-dist64" => {
1869 cppflags => threads("-D_REENTRANT"),
1874 shared_target => "linux-shared",
1875 shared_cflag => "-fPIC",
1880 # Most things happen in vms-generic.
1882 # the target name, and will assume that anything matching /-p\d+$/
1884 "vms-generic" => {
1894 @{vms_info()->{disable_warns}};
1901 return vms_info()->{def_zlib}
1902 ? "LIBZ=\"\"\"".vms_info()->{def_zlib}."\"\"\"" : ();
1918 ex_libs => add(sub { return vms_info()->{zlib} || (); }),
1919 shared_target => "vms-shared",
1926 AS => sub { vms_info()->{AS} },
1927 ASFLAGS => sub { vms_info()->{ASFLAGS} },
1928 asoutflag => sub { vms_info()->{asoutflag} },
1929 asflags => sub { vms_info()->{asflags} },
1930 perlasm_scheme => sub { vms_info()->{perlasm_scheme} },
1938 # ----------
1939 # LONG[=ARGV] The compiler assumes 64-bit pointers. If the ARGV option to
1944 # ----------
1946 # We don't want the hassle of dealing with 32-bit pointers with argv, so
1947 # we force it to have 64-bit pointers, see the added cflags in the -p64
1950 "vms-alpha" => {
1951 inherit_from => [ "vms-generic" ],
1955 "vms-alpha-p32" => {
1956 inherit_from => [ "vms-alpha" ],
1960 "vms-alpha-p64" => {
1961 inherit_from => [ "vms-alpha" ],
1965 "vms-ia64" => {
1966 inherit_from => [ "vms-generic" ],
1968 asm_arch => sub { vms_info()->{AS} ? 'ia64' : undef },
1973 "vms-ia64-p32" => {
1974 inherit_from => [ "vms-ia64" ],
1978 "vms-ia64-p64" => {
1979 inherit_from => [ "vms-ia64" ],
1983 "vms-x86_64" => {
1984 inherit_from => [ "vms-generic" ],
1988 "vms-x86_64-p32" => {
1989 inherit_from => [ "vms-x86_64" ],
1993 "vms-x86_64-p64" => {
1994 inherit_from => [ "vms-x86_64" ],