Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] non-portable test operator in configure
From: Paul H. Hargrove (PHHargrove_at_[hidden])
Date: 2012-02-20 17:37:15


Short version:
The "expr: Paren problem" comes from having /usr/ucb/bin ahead of
/usr/bin in one's $PATH.
So, I needed to fix my $PATH.

Long version:

This error is coming from configure's own argument parsing logic when
the ROMIO sub-configure is invoked.
The issue appears to be that the expr implementation of parens (for
match capture), doesn't like the length of the match.
This works:
> $ expr 'XCPPFLAGS=-D_REENTRANT -I/foo/bar' : '[^=]*=\(.*\)'
> -D_REENTRANT -I/foo/bar

This (from config.log) does not:
> $ expr 'XCPPFLAGS= -D_REENTRANT
> -I/export/home/phargrov/OMPI/openmpi-trunk-solaris10-x86-ss12u3/openmpi-1.7a1r25959/opal/mca/hwloc/hwloc132/hwloc/include
> -I/export/home/phargrov/OMPI/openmpi-trunk-solaris10-x86-ss12u3/BB/opal/mca/hwloc/hwloc132/hwloc/include
> -I/export/home/phargrov/OMPI/openmpi-trunk-solaris10-x86-ss12u3/openmpi-1.7a1r25959/opal/mca/event/libevent2013/libevent
> -I/export/home/phargrov/OMPI/openmpi-trunk-solaris10-x86-ss12u3/openmpi-1.7a1r25959/opal/mca/event/libevent2013/libevent/include
> -I/export/home/phargrov/OMPI/openmpi-trunk-solaris10-x86-ss12u3/BB/opal/mca/event/libevent2013/libevent/include
> -I/usr/include/infiniband -I/usr/include/infiniband' : '[^=]*=\(.*\)'
> expr: Paren problem

This one works:
> expr 'XCPPFLAGS=-D_REENTRANT
> -I/foo/bar/baz/1234567890/acdefghijklmnopqrstuvwxyz/this-is-getting-too-long-for-solaris-expr-to-handle-correctly/'
> : '[^=]*=\(.*\)'
> -D_REENTRANT
> -I/foo/bar/baz/1234567890/acdefghijklmnopqrstuvwxyz/this-is-getting-too-long-for-solaris-expr-to-handle-correctly/

While 1 more character breaks:
> {phargrov_at_cloon BB}$ expr 'XCPPFLAGS=-D_REENTRANT
> -I/foo/bar/baz/1234567890/acdefghijklmnopqrstuvwxyz/this-is-getting-too-long-for-solaris-expr-to-handle-correctly/1'
> : '[^=]*=\(.*\)'
> expr: Paren problem

The work-around appears to be to ensure /usr/bin is before /usr/ucb/bin
in PATH, since /usr/bin/expr doesn't display this problem.
I've fixed my own PATH accordingly for my future Solaris testing.

Even using /bin/sh, I saw no other "odd" behaviors with configure on
Solaris-10.

-Paul

On 2/20/2012 1:16 PM, Paul H. Hargrove wrote:
> Argh!!
> I am now trying to track down "expr: Paren problem" on Solaris.
> The dash shell on Linux doesn't reproduce this one, unfortunately.
>
> -Paul
>
> On 2/20/2012 1:12 PM, Paul H. Hargrove wrote:
>> I'll report back ASAP on my slowlaris10 results.
>

-- 
Paul H. Hargrove                          PHHargrove_at_[hidden]
Future Technologies Group
HPC Research Department                   Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900