bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bad regexp in Libtool m4 for PGI compiler version checking


From: Ralf Wildenhues
Subject: Re: Bad regexp in Libtool m4 for PGI compiler version checking
Date: Tue, 24 Nov 2009 15:28:50 +0100
User-agent: Mutt/1.5.20 (2009-08-09)

* Brent LEBACK wrote on Mon, Nov 16, 2009 at 11:50:57PM CET:
>>> The earliest PGI compiler version in use today is 3.x, so if the
>>> test was changed from [1-5] to [3-5], the fall through case would
>>> handle
>>> all past releases correctly and all future releases until the year
>>> 2030 in the current naming scheme.
>>
>> Thanks, but I prefer not to work that way, unless we cannot do better:
>> it just creates another point in the future where we have to go back to
>> this again (when you hit version 30, that is).
>>
>> So, can you maybe confirm that all versions between 3.x and current
>> use a dot after the major version?
>
> Yes, 3.x from about 10 years ago.  Up to 9.x which is where we are
> now.  And 10.x starting this week sometime.

OK, thanks.  I've pushed the patch below and added you to THANKS.

Cheers,
Ralf

    Tighten regex for Portland C++ compiler for version 10.
    
    * libltdl/m4/libtool.m4 (_LT_LANG_CXX_CONFIG) [linux]:
    Match a dot after version 1 through 5, so 10 and up don't match,
    and use weak symbols.
    * THANKS: Update.
    Report by Jeff Squyres and Brent Leback.

diff --git a/libltdl/m4/libtool.m4 b/libltdl/m4/libtool.m4
index 1f58a38..65dd027 100644
--- a/libltdl/m4/libtool.m4
+++ b/libltdl/m4/libtool.m4
@@ -5993,7 +5993,7 @@ if test "$_lt_caught_CXX_error" != yes; then
           pgCC* | pgcpp*)
             # Portland Group C++ compiler
            case `$CC -V` in
-           *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
+           *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
              _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
                rm -rf $tpldir~
                $CC --prelink_objects --instantiation_dir $tpldir $objs 
$libobjs $compile_deplibs~
@@ -6012,7 +6012,7 @@ if test "$_lt_caught_CXX_error" != yes; then
                $CC --prelink_objects --instantiation_dir $tpldir 
$predep_objects $libobjs $deplibs $convenience $postdep_objects~
                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find 
$tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname 
${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;
-           *) # Version 6 will use weak symbols
+           *) # Version 6 and above use weak symbols
              _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag 
$predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname 
${wl}$soname -o $lib'
              _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag 
$predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname 
${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
              ;;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]