On 07/19/2011 11:51 AM, Cleber Rosa wrote:
> Recent Linux distributions ship with a drop-in directory for the dynamic
> loader configuration. This patch makes library() check for include
> statements. If a include statetement is found, all files that match
> will be read for additional library paths.

OK Cleber, the patchset was applied:

http://autotest.kernel.org/changeset/5505
http://autotest.kernel.org/changeset/5506
http://autotest.kernel.org/changeset/5507

Great work, thanks!

> Signed-off-by: Cleber Rosa<[email protected]>
> ---
>   client/bin/os_dep.py |   24 ++++++++++++++++++++++--
>   1 files changed, 22 insertions(+), 2 deletions(-)
>
> diff --git a/client/bin/os_dep.py b/client/bin/os_dep.py
> index 3f95a98..cf8eaf5 100644
> --- a/client/bin/os_dep.py
> +++ b/client/bin/os_dep.py
> @@ -1,4 +1,5 @@
>   import os
> +import glob
>
>   """
>   One day, when this module grows up, it might actually try to fix things.
> @@ -22,8 +23,27 @@ def commands(*cmds):
>
>
>   def library(lib):
> -    lddirs = [x.rstrip() for x in open('/etc/ld.so.conf', 'r').readlines()]
> -    for dir in ['/lib', '/usr/lib'] + lddirs:
> +    lddirs = []
> +    # read lddirs from  main ld.so.conf file
> +    for line in open('/etc/ld.so.conf', 'r').readlines():
> +        if line.startswith('include '):
> +            glob_pattern = line.split('include ')[1]
> +            if not os.path.isabs(glob_pattern):
> +                # prepend with a base path of '/etc'
> +                glob_pattern = os.path.join('/etc', glob_pattern)
> +            glob_result = glob.glob(glob_pattern)
> +            for conf_file in glob_result:
> +                for conf_file_line in open(conf_file, 'r').readlines():
> +                    if os.path.isdir(conf_file_line):
> +                        lddirs.append(conf_file_line)
> +        else:
> +            if os.path.isdir(line):
> +                lddirs.append(line.strip())
> +
> +    lddirs = set(lddirs)
> +    lddirs = list(lddirs)
> +
> +    for dir in ['/lib', '/usr/lib', '/lib64', '/usr/lib64'] + lddirs:
>           file = os.path.join(dir, lib)
>           if os.path.exists(file):
>               return file

_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to