-Dusemallocwrap for VMS)
Craig A. Berry [Fri, 26 Mar 2004 22:46:50 +0000 (16:46 -0600)]
From:  "Craig A. Berry" <craigberry@mac.com>
Message-Id:  <4065073A.30007@mac.com>

Mimic in configure.com what Configure does to enable or disable
the new feature -Dusemallocwrap

p4raw-id: //depot/perl@22601

configure.com

index 8aaa778..479af18 100644 (file)
@@ -880,7 +880,7 @@ $   config_symbols0 ="|archlib|archlibexp|bin|binexp|builddir|cf_email|config_sh
 $   config_symbols1 ="|installprivlib|installscript|installsitearch|installsitelib|most|oldarchlib|oldarchlibexp|osname|pager|perl_symbol|perl_verb|"
 $   config_symbols2 ="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitebin|sitelib|sitelib_stem|sitelibexp|try_cxx|use64bitall|use64bitint|"
 $   config_symbols3 ="|usecasesensitive|usedefaulttypes|usedevel|useieee|useithreads|usemultiplicity|usemymalloc|usedebugging_perl|useperlio|usesecurelog|"
-$   config_symbols4 ="|usethreads|usevmsdebug|usefaststdio|"
+$   config_symbols4 ="|usethreads|usevmsdebug|usefaststdio|usemallocwrap|"
 $!  
 $   open/read CONFIG 'config_sh'
 $   rd_conf_loop:
@@ -2507,6 +2507,23 @@ $ d_alwdeftype = ans
 $ usedefaulttypes = "undef"
 $ if (d_alwdeftype) then usedefaulttypes = "define"
 $!
+$! determine whether to use malloc wrapping
+$ echo ""
+$ IF .NOT. usedevel .AND. usedevel .NES. "define"
+$ THEN bool_dflt = "n"
+$ ELSE bool_dflt = "y"
+$ ENDIF
+$ IF F$TYPE(usemallocwrap) .nes. ""
+$ then
+$   if usemallocwrap .or. usemallocwrap .eqs. "define" then bool_dflt = "y"
+$ endif
+$ rp = "Do you wish to wrap malloc calls to protect against potential overflows? [''bool_dflt'] "
+$ GOSUB myread
+$ IF ans
+$ THEN usemallocwrap = "define"
+$ ELSE usemallocwrap = "undef"
+$ ENDIF
+$!
 $! Ask if they want to use perl's memory allocator
 $ echo ""
 $ echo "Perl has a built-in memory allocator that is tuned for normal"
@@ -5766,6 +5783,7 @@ $ WC "lseektype='int'"
 $ WC "mab='" + "'"
 $ WC "make='" + make + "'"
 $ WC "malloctype='void *'"
+$ WC "usemallocwrap='" + usemallocwrap + "'"
 $ WC "man1ext='rno'"
 $ WC "man3ext='rno'"
 $ WC "mmaptype='void *'"