From 66a83f3eac1c9c8ad575c117b7c49995dc549d26 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sat, 3 Jan 2009 05:12:22 +0000 Subject: Remove unneeded header files from source files throughout. Update copyrights where appropriate. * globals.cc: New file for generic global variables. * mkglobals_h: New file to generate globals.h. * mkstatic: New Script used to build a (currently non-working) static libcygwin_s.a. * Makefile.in: Add unused rule to build a non-working libcygwin_s.a. (DLL_OFILES): Add globals.o. Make all objects rely on globals.h. (globals.h): New target. Generate globals.h. * cygtls.h: Honor new CYGTLS_HANDLE define to control when the HANDLE operator is allowed in _cygtls. * dcrt0.cc: Move most globals to globals.cc. * init.cc: Ditto. * environ.cc (strip_title_path): Remove now-unneeded extern. * fhandler_serial.cc (fhandler_serial::open): Ditto. * pinfo.cc: Ditto. (commune_process): Ditto. * shared.cc: Ditto. * glob.cc: Ditto. * strace.cc: Ditto. * exceptions.cc: Define CYGTLS_HANDLE before including winsup.h. * path.cc (stat_suffixes): Move here. * security.h: Add forward class path_conv declaration. * smallprint.cc (__small_vsprintf): Make a true c++ function. (__small_sprintf): Ditto. (small_printf): Ditto. (console_printf): Ditto. (__small_vswprintf): Ditto. (__small_swprintf): Ditto. * spawn.cc (spawn_guts): Remove _stdcall decoration in favor of regparm. (hExeced): Move to globals.cc * strfuncs.cc (current_codepage): Ditto. (active_codepage): Ditto. * sync.cc (lock_process::locker): Move here from dcrt0.cc. * syscalls.cc (stat_suffixes): Move to path.cc. * tty.cc (tty::create_master): Uncapitalize fatal warning for consistency. * winsup.h: Include globals.h to declare most of the grab bag list of globals which were previously defined here. * mount.h: Move USER_* defines back to shared_info.h. * speclib: Force temporary directory cleanup. --- winsup/cygwin/mkstatic | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 winsup/cygwin/mkstatic (limited to 'winsup/cygwin/mkstatic') diff --git a/winsup/cygwin/mkstatic b/winsup/cygwin/mkstatic new file mode 100755 index 000000000..b7a81b0ad --- /dev/null +++ b/winsup/cygwin/mkstatic @@ -0,0 +1,59 @@ +#!/usr/bin/perl +use strict; +use Cwd; +use Getopt::Long; +use File::Temp qw/tempdir/; +use File::Basename; + +sub xsystem(@); + +my @exclude = (); +my @library = (); +my $ar; +our $x; +GetOptions('exclude=s'=>\@exclude, 'library=s'=>\@library, 'ar=s'=>\$ar, 'x!'=>\$x); + +die "$0: must specify --ar\n" unless defined $ar; +my $lib = shift or die "$0: missing lib argument\nusage: $0 lib [map-file]\n"; +$lib = Cwd::abs_path($lib); + +my %excludes = map {($_, 1)} @exclude; +my $libraries = join('|', map {quotemeta} @library); + +my %sources = (); +while (<>) { + my ($source, $file, $absfile); + if (m%^($libraries)\(([^)]*)\)%o) { + $source = $1; + $absfile = $file = $2; + } elsif (/^LOAD\s+(.*\.o)$/o) { + $source = '.'; + $file = $1; + $absfile = Cwd::abs_path($file); + } else { + next; + } + push @{$sources{$source}}, $absfile unless $excludes{$file} || $excludes{$source}; +} + +my $here = getcwd(); +my $dir = tempdir(CLEANUP=>1); +chdir $dir; +my @files = (); +for (sort keys %sources) { + if ($_ eq '.') { + xsystem '/bin/cp', '-a', @{$sources{$_}}, '.'; + } else { + xsystem $ar, 'x', $_, @{$sources{$_}}, '.'; + } + push @files, map {basename($_)} @{$sources{$_}}; +} + +unlink $lib; +xsystem $ar, 'crs', $lib, sort @files; +exit 0; + +sub xsystem(@) { + print join(' ', 'x', @_), "\n" if $x; + system(@_) == 0 or die "$0: @_[0] $_[1] $_[2]... exited with non-zero status\n"; +} -- cgit v1.2.3