diff options
Diffstat (limited to 'nx-X11/programs/Xserver/hw/xfree86/os-support/sunos/find_deps.pl')
-rwxr-xr-x | nx-X11/programs/Xserver/hw/xfree86/os-support/sunos/find_deps.pl | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/nx-X11/programs/Xserver/hw/xfree86/os-support/sunos/find_deps.pl b/nx-X11/programs/Xserver/hw/xfree86/os-support/sunos/find_deps.pl deleted file mode 100755 index 2eac14f47..000000000 --- a/nx-X11/programs/Xserver/hw/xfree86/os-support/sunos/find_deps.pl +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/perl -w -# -# $XdotOrg: xc/programs/Xserver/hw/xfree86/os-support/sunos/find_deps.pl,v 1.2 2004/09/22 17:20:56 alanc Exp $ -# -# Copyright 2004 Sun Microsystems, Inc. All rights reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, and/or sell copies of the Software, and to permit persons -# to whom the Software is furnished to do so, provided that the above -# copyright notice(s) and this permission notice appear in all copies of -# the Software and that both the above copyright notice(s) and this -# permission notice appear in supporting documentation. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL -# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING -# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION -# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -# -# Except as contained in this notice, the name of a copyright holder -# shall not be used in advertising or otherwise to promote the sale, use -# or other dealings in this Software without prior written authorization -# of the copyright holder. -# -#------------------------------------------------------------------------------ -# -# This script scans the X server, it's libraries, and shared object drivers -# and generates the linker flags necessary to allow the shared object modules -# to load via dlopen(). -# -# WARNING: Do not try this at home boys and girls! Only trained professionals -# should try this stunt. This script is not intended to serve as an example of -# proper use of the linker or associated tools, but merely as an unfortunately -# necessary bit of hackery to get Xserver modules to load via Solaris dlopen -# instead of the XFree86 custom loader/runtime linker. -# -# No guarantee of usability or suitablity is made - in fact it's almost -# guaranteed this is not suitable for any other use, and maybe not even -# for the one it was intended. -# -# Usage: find_deps.pl [-R ProjectRoot] <paths_to_scan> -# Expects to be called while cwd is a directory containing Xorg or XFree86 -# server binary. - -use strict; -use File::Find; -use Getopt::Std; - -my @objlist = (); -my %symtable = (); - -my $servername; - -my $ProjectRoot = "/usr/X11R6"; - -my %opts; -getopts('R:', \%opts); -if (exists($opts{"R"})) { - $ProjectRoot = $opts{"R"}; -} - -if (-f "Xorg") { - $servername = "Xorg"; -} elsif (-f "XFree86") { - $servername = "XFree86"; -} else { - die "Cannot find X server"; -} - -$File::Find::name = $servername; -$_ = $servername; -&scanobjs; - -find({wanted => \&scanobjs, preprocess => \&filterobjs}, @ARGV); - -for my $f (@objlist) { - open(ELFDUMP, "/usr/ccs/bin/elfdump -r $f|") || die "Cannot open file"; - my $edline; - my %deps = (); - while ($edline = <ELFDUMP>) { - next unless $edline =~ /(GLOB_DAT|R_386_32|R_SPARC_32)/; - my @edpart = split /\s+/, $edline; - if (exists $symtable{$edpart[$#edpart]}) { -# print "$f : $edpart[$#edpart] - $symtable{$edpart[$#edpart]}\n"; - $deps{$symtable{$edpart[$#edpart]}} += 1; - } else { - print "$f : $edpart[$#edpart] - not found\n"; - } - } - close(ELFDUMP); - - my $depslist = ""; - - for my $d (sort keys %deps) { - next if ($f =~ /$d/ || $d !~ /\.so$/); - $depslist .= " -Wl,-N,$d"; - } - print "$f : $depslist\n"; - my $depsfile = $f ."_deps"; - if ($depslist ne "") { - my $dirlist = "-R $ProjectRoot/lib/modules"; - if ($f =~ /drivers/) { - $dirlist .= " -R $ProjectRoot/lib/modules/drivers"; - } - if ($depslist =~ /libfbdevhw.so/) { - $dirlist .= " -R $ProjectRoot/lib/modules/linux/"; - } - if ($depslist =~ /libGLcore.so/) { - $dirlist .= " -R $ProjectRoot/lib/modules/extensions/"; - } - - open(MODDEPSFILE, '>', $depsfile) || die "Cannot write to $depsfile"; - print MODDEPSFILE $dirlist, $depslist, "\n"; - close(MODDEPSFILE); - } elsif (! -z $depsfile) { - unlink($depsfile); - system("touch $depsfile"); - } -} - - -sub filterobjs { - return (grep( ($_ =~ /\.so$/) || (-d $_) , @_)); -} - -sub scanobjs { - return if /libXfont.so/; - return if (-d $_); - print "Scanning $File::Find::name ...\n"; - push @objlist, $File::Find::name; - open(NMOUT, "/usr/ccs/bin/nm $_|") || die "Cannot nm file $_"; - my $nmline; - while ($nmline = <NMOUT>) { - next unless $nmline =~ /\|/; - my @nmpart = split(/\s*\|\s*/, $nmline); - next unless ($nmpart[4] eq "GLOB") && ($nmpart[6] ne "UNDEF"); - chomp($nmpart[7]); - if (! exists $symtable{$nmpart[7]}) { - $symtable{$nmpart[7]} = $_; - } - } - close(NMOUT); -} |