[llvm-commits] Patch: improve protability of llvm-config

Tanya Lattner lattner at apple.com
Tue Nov 4 17:07:02 PST 2008


FYI, this patch has been reverted. It breaks the mingw build.

Please see Julien's email to llvm-commits.

-Tanya

On Nov 3, 2008, at 2:45 PM, Sascha Othman wrote:

> llvm-config uses shell scripting instead of perl functions to  
> determine
> llvm's installation directories, which is not very portable. This  
> patch
> is an attempt to fix that by using perl's Cwd functions.
> Please review twice and don't be too harsh with me since I'm not
> especially experienced at this kind of thing.
>
> Regards,
> Sascha
> --- llvm-config.in.in	2008-11-03 22:28:01.000000000 +0100
> +++ llvm-config.in.in.patched	2008-11-03 22:32:56.000000000 +0100
> @@ -18,6 +18,7 @@
> use 5.006;
> use strict;
> use warnings;
> +use Cwd;
>
> #---- begin autoconf values ----
> my $PACKAGE_NAME        = q{@PACKAGE_NAME@};
> @@ -64,21 +65,13 @@
> # Convert the current executable name into its directory (e.g. ".").
> my ($RUN_DIR) = ($0 =~ /^(.*)\/.*$/);
>
> -# Find the unix pwd program: we don't want to use the bash builtin,  
> as it does
> -# not look through symlinks etc.
> -my $PWD = `which pwd`;
> -chomp($PWD);
> -$PWD = "pwd" if (!-e $PWD);
> -
> # Turn the directory into an absolute directory on the file system,  
> also pop up
> # from "bin" into the build or prefix dir.
> -my $ABS_RUN_DIR = `cd $RUN_DIR/..; $PWD`;
> -chomp($ABS_RUN_DIR);
> +my $ABS_RUN_DIR = Cwd::realpath("$RUN_DIR/..");
>
> # Compute the absolute object directory build, e.g. "foo/llvm/Debug".
> my $ABS_OBJ_ROOT = "$LLVM_OBJ_ROOT/$LLVM_BUILDMODE";
> -$ABS_OBJ_ROOT = `cd $ABS_OBJ_ROOT; $PWD` if (-d $ABS_OBJ_ROOT);
> -chomp($ABS_OBJ_ROOT);
> +$ABS_OBJ_ROOT = Cwd::realpath($ABS_OBJ_ROOT) if (-d $ABS_OBJ_ROOT);
>
> my $INCLUDEDIR = "$ABS_RUN_DIR/include";
> my $LIBDIR     = "$ABS_RUN_DIR/lib";
> @@ -142,9 +135,9 @@
>         } elsif ($arg eq "--build-mode") {
>             $has_opt = 1; print "$LLVM_BUILDMODE\n";
>         } elsif ($arg eq "--obj-root") {
> -            $has_opt = 1; print `cd $LLVM_OBJ_ROOT/; $PWD`;
> +            $has_opt = 1; print Cwd::realpath($LLVM_OBJ_ROOT);
>         } elsif ($arg eq "--src-root") {
> -            $has_opt = 1; print `cd $LLVM_SRC_ROOT/; $PWD`;
> +            $has_opt = 1; print Cwd::realpath($LLVM_SRC_ROOT);
>         } else {
>             usage();
>         }
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20081104/0a768e73/attachment.html>


More information about the llvm-commits mailing list