[PATCH] fix runtests to set LD_LIBRARY_PATH environment variable

Simon Marlow marlowsd at gmail.com
Fri Jan 25 09:02:15 CET 2013


Hold on a minute.  Why do you need to set LD_LIBRARY_PATH?  It should be 
unnecessary because the binaries are linked with -rpath options so they 
can find their libraries.

Cheers,
	Simon

On 25/01/13 01:33, David Terei wrote:
> Committed. Thanks!
>
> On 24 January 2013 13:28, Karel Gardas <karel.gardas at centrum.cz> wrote:
>> This patch follows Windows and Darwin way of setting environment variable
>> to set the file-system paths to GHC's shared libraries. It does the same
>> thing for any other OS, which should be Unix-like OS presumably. This
>> patch fixes a lot of `dyn' tests failures on Solaris which fail with following
>> error message:
>> Failed to open shared library: ld.so.1: T3807-load: fatal: libffi.so.6: open failed: No such file or directory
>> ---
>>   driver/runtests.py |   48 ++++++++++++++++++++++++++----------------------
>>   1 files changed, 26 insertions(+), 22 deletions(-)
>>
>> diff --git a/driver/runtests.py b/driver/runtests.py
>> index 66e3bf4..16deda6 100644
>> --- a/driver/runtests.py
>> +++ b/driver/runtests.py
>> @@ -181,28 +181,32 @@ from testlib import *
>>
>>   # On Windows we need to set $PATH to include the paths to all the DLLs
>>   # in order for the dynamic library tests to work.
>> -if windows or darwin:
>> -    pkginfo = getStdout([config.ghc_pkg, 'dump'])
>> -    topdir = config.libdir
>> -    for line in pkginfo.split('\n'):
>> -        if line.startswith('library-dirs:'):
>> -            path = line.rstrip()
>> -            path = re.sub('^library-dirs: ', '', path)
>> -            path = re.sub('\\$topdir', topdir, path)
>> -            if path.startswith('"'):
>> -                path = re.sub('^"(.*)"$', '\\1', path)
>> -                path = re.sub('\\\\(.)', '\\1', path)
>> -            if windows:
>> -                if config.cygwin:
>> -                    # On cygwin we can't put "c:\foo" in $PATH, as : is a
>> -                    # field separator. So convert to /cygdrive/c/foo instead.
>> -                    # Other pythons use ; as the separator, so no problem.
>> -                    path = re.sub('([a-zA-Z]):', '/cygdrive/\\1', path)
>> -                    path = re.sub('\\\\', '/', path)
>> -                os.environ['PATH'] = os.pathsep.join([path, os.environ.get("PATH", "")])
>> -            else:
>> -                # darwin
>> -                os.environ['DYLD_LIBRARY_PATH'] = os.pathsep.join([path, os.environ.get("DYLD_LIBRARY_PATH", "")])
>> +# if windows or darwin:
>> +pkginfo = getStdout([config.ghc_pkg, 'dump'])
>> +topdir = config.libdir
>> +for line in pkginfo.split('\n'):
>> +    if line.startswith('library-dirs:'):
>> +        path = line.rstrip()
>> +        path = re.sub('^library-dirs: ', '', path)
>> +        path = re.sub('\\$topdir', topdir, path)
>> +        if path.startswith('"'):
>> +            path = re.sub('^"(.*)"$', '\\1', path)
>> +            path = re.sub('\\\\(.)', '\\1', path)
>> +        if windows:
>> +            if config.cygwin:
>> +                # On cygwin we can't put "c:\foo" in $PATH, as : is a
>> +                # field separator. So convert to /cygdrive/c/foo instead.
>> +                # Other pythons use ; as the separator, so no problem.
>> +                path = re.sub('([a-zA-Z]):', '/cygdrive/\\1', path)
>> +                path = re.sub('\\\\', '/', path)
>> +            os.environ['PATH'] = os.pathsep.join([path, os.environ.get("PATH", "")])
>> +        elif darwin:
>> +            # darwin
>> +            os.environ['DYLD_LIBRARY_PATH'] = os.pathsep.join([path, os.environ.get("DYLD_LIBRARY_PATH", "")])
>> +        else:
>> +            # unix
>> +            os.environ['LD_LIBRARY_PATH'] = os.pathsep.join([path, os.environ.get("LD_LIBRARY_PATH", "")])
>> +
>>
>>   global testopts_local
>>   testopts_local.x = TestOptions()
>> --
>> 1.7.3.2
>>
>>
>> _______________________________________________
>> ghc-devs mailing list
>> ghc-devs at haskell.org
>> http://www.haskell.org/mailman/listinfo/ghc-devs
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
>




More information about the ghc-devs mailing list