xref: /aoo41x/main/solenv/bin/gccinstlib.pl (revision a6bbe7ee)
1cdf0e10cSrcweir:
2cdf0e10cSrcweireval 'exec perl -wS $0 ${1+"$@"}'
3cdf0e10cSrcweir   if 0;
4cdf0e10cSrcweir#*************************************************************************
5cdf0e10cSrcweir#
6cdf0e10cSrcweir# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7cdf0e10cSrcweir#
8cdf0e10cSrcweir# Copyright 2000, 2010 Oracle and/or its affiliates.
9cdf0e10cSrcweir#
10cdf0e10cSrcweir# OpenOffice.org - a multi-platform office productivity suite
11cdf0e10cSrcweir#
12cdf0e10cSrcweir# This file is part of OpenOffice.org.
13cdf0e10cSrcweir#
14cdf0e10cSrcweir# OpenOffice.org is free software: you can redistribute it and/or modify
15cdf0e10cSrcweir# it under the terms of the GNU Lesser General Public License version 3
16cdf0e10cSrcweir# only, as published by the Free Software Foundation.
17cdf0e10cSrcweir#
18cdf0e10cSrcweir# OpenOffice.org is distributed in the hope that it will be useful,
19cdf0e10cSrcweir# but WITHOUT ANY WARRANTY; without even the implied warranty of
20cdf0e10cSrcweir# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21cdf0e10cSrcweir# GNU Lesser General Public License version 3 for more details
22cdf0e10cSrcweir# (a copy is included in the LICENSE file that accompanied this code).
23cdf0e10cSrcweir#
24cdf0e10cSrcweir# You should have received a copy of the GNU Lesser General Public License
25cdf0e10cSrcweir# version 3 along with OpenOffice.org.  If not, see
26cdf0e10cSrcweir# <http://www.openoffice.org/license.html>
27cdf0e10cSrcweir# for a copy of the LGPLv3 License.
28cdf0e10cSrcweir#
29cdf0e10cSrcweir#*************************************************************************
30cdf0e10cSrcweir
31cdf0e10cSrcweir$ENV{'LC_MESSAGES'} = 'C';
32cdf0e10cSrcweir
33cdf0e10cSrcweir$Dest = pop(@ARGV) || die "No destination to copy to";
34cdf0e10cSrcweir
35cdf0e10cSrcweir$cc = $ENV{'CC'} || die "No CC environment set";
36cdf0e10cSrcweir
37cdf0e10cSrcweirif ($Dest =~ /--help/ || @ARGV < 1) {
38cdf0e10cSrcweir    print "Syntax:\n  gcc-instlib <library-in-libpath ...> <destination-dir>\n";
39cdf0e10cSrcweir    exit (0);
40cdf0e10cSrcweir}
41*a6bbe7eeSEike Rathke
42*a6bbe7eeSEike Rathke%SrcAndDest = ();
43*a6bbe7eeSEike Rathke
44cdf0e10cSrcweirforeach $File (@ARGV) {
45cdf0e10cSrcweir    my $string;
46*a6bbe7eeSEike Rathke    my $normalized_file = $File;
47*a6bbe7eeSEike Rathke    $normalized_file =~ s/\.so\.\d+/.so/;
48*a6bbe7eeSEike Rathke    open (GCCOut, "LANGUAGE=C LC_ALL=C $cc -print-file-name=$normalized_file|") || die "Failed to exec $cc -print-file-name=$normalized_file $!";
49cdf0e10cSrcweir    $string=<GCCOut>;
50cdf0e10cSrcweir    chomp ($string);
51*a6bbe7eeSEike Rathke    $SrcAndDest{$string} = "$Dest/$File";
52cdf0e10cSrcweir    close (GCCOut);
53cdf0e10cSrcweir}
54cdf0e10cSrcweir
55*a6bbe7eeSEike Rathkewhile (($Src, $FullDest) = each %SrcAndDest) {
56*a6bbe7eeSEike Rathke    printf "copy $Src to $FullDest\n";
57*a6bbe7eeSEike Rathke    system ("/bin/cp $Src $FullDest") && die "copy failed: $!";
58cdf0e10cSrcweir}
59cdf0e10cSrcweir
60cdf0e10cSrcweir
61cdf0e10cSrcweirforeach $File (@ARGV) {
62cdf0e10cSrcweir    #https://bugzilla.redhat.com/show_bug.cgi?id=149465
63cdf0e10cSrcweir    printf "unprelinking $Dest/$File\n";
64cdf0e10cSrcweir    #If it's already unprelinked .i.e. no .gnu.prelink_undo section, that's fine
65cdf0e10cSrcweir    #If prelink is not installed, it's massively unlikely that it's prelinked
66cdf0e10cSrcweir    system ("prelink -u $Dest/$File > /dev/null 2>&1");
67cdf0e10cSrcweir}
68cdf0e10cSrcweir
69cdf0e10cSrcweirexit (0);
70