Initial commit
This commit is contained in:
104
TBE/MinGW/bin/a2dll
Normal file
104
TBE/MinGW/bin/a2dll
Normal file
@@ -0,0 +1,104 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This is a2dll 1.0
|
||||
# (c)1999-2000 Paul Sokolovsky
|
||||
# a2dll is distrubuted under GNU General Public License, see http://www.gnu.org
|
||||
|
||||
|
||||
usage() {
|
||||
echo 'a2dll 1.0: convert static library into win32 dll'
|
||||
echo ' by <Paul.Sokolovsky@technologist.com>'
|
||||
echo 'Usage: a2dll <staticlib> [-o <dllname>] [linker commands:-L,-l,-s] [--relink]'
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
cmdline=$@
|
||||
|
||||
while test $# -ge 1
|
||||
do
|
||||
case "$1" in
|
||||
-\? | -h* | --h*) usage;;
|
||||
-o ) out="$2"; shift; shift;;
|
||||
--relink) relink=1; shift;;
|
||||
-* ) libs="$libs $1"; shift;;
|
||||
*) in=$1; shift;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$in" = "" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
base=`basename $in .a`
|
||||
|
||||
if [ "$out" = "" ]
|
||||
then
|
||||
out=`awk -v n=$base 'BEGIN {print substr(n,4); exit;}'`.dll
|
||||
fi
|
||||
|
||||
if [ "$relink" != "1" ]
|
||||
then
|
||||
rm -f .dll/*
|
||||
/usr/bin/mkdir -p .dll
|
||||
cd .dll
|
||||
ar x ../$in
|
||||
else
|
||||
cd .dll
|
||||
fi
|
||||
|
||||
echo Creating shared library \'$out\'
|
||||
|
||||
dllwrap --export-all -o ../$out `ls` $libs >../ld.err 2>&1
|
||||
|
||||
cd ..
|
||||
if [ `wc ld.err|awk ' {print $1}' ` -gt 2 ]
|
||||
then
|
||||
echo Linking error, consult file \'ld.err\', correct errors, and run
|
||||
echo \'$0 $cmdline --relink\'
|
||||
exit 1
|
||||
else
|
||||
# cleanup
|
||||
|
||||
rm -f ld.err
|
||||
rm -f .dll/*
|
||||
/usr/bin/rmdir .dll
|
||||
|
||||
# create .def
|
||||
# we use pexports on dll instead of dlltool on objects for this,
|
||||
# because it's:
|
||||
# 1. faster
|
||||
# 2. I just saw that dlltool lies about assembly-sourced files, it
|
||||
# lists their symbols as data
|
||||
|
||||
pexports $out >$base.def
|
||||
|
||||
# create import library
|
||||
|
||||
mv $in $in.static
|
||||
dlltool --dllname $out --def $base.def --output-lib $in
|
||||
|
||||
# finally, we check whether dll exports data symbols
|
||||
# if yes, we suggest user on steps to perform
|
||||
|
||||
pexports $out | awk '/DATA/ { print $1}' >$out.data
|
||||
if test -s $out.data
|
||||
then
|
||||
echo
|
||||
echo Shared library exports data symbols, they are listed \
|
||||
in \'$out.data\'. For using them in client application, you should mark \
|
||||
them as __declspec\(dllimport\) in library headers. You can quickly \
|
||||
find places where these data symbols declared by issuing
|
||||
echo
|
||||
echo " grep -f $out.data *.h"
|
||||
echo
|
||||
echo in library header directory. Also note that this step is optional, you can postpone \
|
||||
it until you\'ll get during linking unresolved symbol _imp__\<something\>, where \
|
||||
\<something\> is one of the symbols listed in $out.data. Read documentation \
|
||||
\(static2dll_howto.txt\) for more information.
|
||||
else
|
||||
rm $out.data
|
||||
fi
|
||||
rm $base.def
|
||||
fi
|
||||
BIN
TBE/MinGW/bin/addr2line.exe
Normal file
BIN
TBE/MinGW/bin/addr2line.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/ar.exe
Normal file
BIN
TBE/MinGW/bin/ar.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/as.exe
Normal file
BIN
TBE/MinGW/bin/as.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/c++.exe
Normal file
BIN
TBE/MinGW/bin/c++.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/c++filt.exe
Normal file
BIN
TBE/MinGW/bin/c++filt.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/cpp.exe
Normal file
BIN
TBE/MinGW/bin/cpp.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/dlltool.exe
Normal file
BIN
TBE/MinGW/bin/dlltool.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/dllwrap.exe
Normal file
BIN
TBE/MinGW/bin/dllwrap.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/dos2unix.exe
Normal file
BIN
TBE/MinGW/bin/dos2unix.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/drmingw.exe
Normal file
BIN
TBE/MinGW/bin/drmingw.exe
Normal file
Binary file not shown.
976
TBE/MinGW/bin/dsw2mak
Normal file
976
TBE/MinGW/bin/dsw2mak
Normal file
@@ -0,0 +1,976 @@
|
||||
#!gawk -f
|
||||
# dsw2mak.awk
|
||||
#
|
||||
# An Awk script that generates a unix Makefile from a
|
||||
# Microsoft Developer Studio workspace file.
|
||||
#
|
||||
# Copyright (C) 2001 Jos<6F> Fonseca
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License, http://www.gnu.org/copyleft/gpl.html
|
||||
# for more details.
|
||||
#
|
||||
# Jos<6F> Fonseca <j_r_fonseca@yahoo.co.uk>
|
||||
#
|
||||
# Features:
|
||||
# - generation of GUI applications (including resource files),
|
||||
# DLLs, console applications and static libraries
|
||||
# - translations of the most common compiler and linker options
|
||||
# - conversion of workspace files (.dsw) and all associated
|
||||
# projects files (.dsp) generating all necessary Makefiles
|
||||
# - handling of nested !IF, !ELSEIF and !ENDIF maintaining the
|
||||
# same build configurations as the original project
|
||||
# - automatic generation of the dependencies
|
||||
#
|
||||
# Example:
|
||||
# gawk -f dsw2mak.awk MyApp.dsw
|
||||
#
|
||||
# Notes:
|
||||
# - Make sure that both this script and the input files are in
|
||||
# a line ending convention that gawk version in your system
|
||||
# can handle.
|
||||
# - If an option is not handled by this script don't edit all
|
||||
# generate Makefiles by hand. Add support for the option in
|
||||
# this script and submit your additions to the author.
|
||||
#
|
||||
# Changelog (incomplete):
|
||||
# 2001-02-18: Jos<6F> Fonseca
|
||||
# Improved linker libraries and options handling.
|
||||
# Debug output.
|
||||
# Better handling of custom builds
|
||||
#
|
||||
# 2001-02-15: Jos<6F> Fonseca
|
||||
# Improved C compiler options handling.
|
||||
# More verbose warning output.
|
||||
#
|
||||
# 2001-02-14: Jos<6F> Fonseca
|
||||
# Added comments to the source code.
|
||||
#
|
||||
|
||||
|
||||
# check and remove unnecessary quotes from a string
|
||||
function fixquotes(str) {
|
||||
if(str ~ /^"[^[:blank:]]+"$/) {
|
||||
sub(/^"/, "", str);
|
||||
sub(/"$/, "", str);
|
||||
}
|
||||
|
||||
return str
|
||||
}
|
||||
|
||||
# fixes a path string
|
||||
function fixpath(path) {
|
||||
# remove leading and trainling whitespaces
|
||||
sub(/^[[:blank:]]+/, "", path);
|
||||
sub(/[[:blank:]]+$/, "", path);
|
||||
|
||||
# check and remove unnecessary quotes
|
||||
path = fixquotes(path)
|
||||
|
||||
# change the forward slashes to backslashes
|
||||
gsub(/\\/, "/", path)
|
||||
|
||||
# remove reduntant ./ directories
|
||||
gsub(/^(\.\/)+/, "", path)
|
||||
gsub(/^\/(\.\/)+/, "", path)
|
||||
|
||||
return path
|
||||
}
|
||||
|
||||
# get the base directory from a path
|
||||
function basedir(path) {
|
||||
# remove leading and trainling whitespaces
|
||||
sub(/^[[:blank:]]+/, "", path);
|
||||
sub(/[[:blank:]]+$/, "", path);
|
||||
|
||||
# remove the quotes
|
||||
if(path ~ /^".+"$/) {
|
||||
sub(/^"/, "", path);
|
||||
sub(/"$/, "", path);
|
||||
}
|
||||
|
||||
# remove the leading path
|
||||
sub(/(^|[\/\\:])[^\/\\:]*$/, "", path)
|
||||
|
||||
# add quotes if needed
|
||||
if(path ~ /[[:blank:]]/)
|
||||
path = "\"" path "\""
|
||||
|
||||
return path
|
||||
}
|
||||
|
||||
# get the filename from a path
|
||||
function basefile(path) {
|
||||
# remove leading and trainling whitespaces
|
||||
sub(/^[[:blank:]]+/, "", path);
|
||||
sub(/[[:blank:]]+$/, "", path);
|
||||
|
||||
# remove the quotes
|
||||
if(path ~ /^".+"$/) {
|
||||
sub(/^"/, "", path);
|
||||
sub(/"$/, "", path);
|
||||
}
|
||||
|
||||
# remove the trailing path
|
||||
sub(/^.*[\/\\:]/, "", path)
|
||||
|
||||
# add quotes if needed
|
||||
if(path ~ /[[:blank:]]/)
|
||||
path = "\"" path "\""
|
||||
|
||||
return path
|
||||
}
|
||||
|
||||
# skip lines until matching a given regular expression
|
||||
# NOTE: not used but it could be eventually handy
|
||||
function skip(regexp, infile, ret) {
|
||||
while((ret = getline < infile) == 1 && $0 !~ regexp) {}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
# parses a project file (.dsp) specified by 'infile' and generates a makefile to 'outfile'
|
||||
function parse_dsp(infile, outfile, i) {
|
||||
print infile
|
||||
|
||||
# this specifies verbose debug output
|
||||
debug = 0
|
||||
|
||||
# this specifies a prefix to the binutils and gcc binaries
|
||||
#prefix = "mingw32-"
|
||||
prefix = ""
|
||||
|
||||
# this specifies the name of the 'rm -f' or equivalent command
|
||||
rm = "rm -f"
|
||||
|
||||
# check for a bad file
|
||||
if((getline < infile) == -1) {
|
||||
print infile ": " ERRNO
|
||||
return
|
||||
}
|
||||
|
||||
# Strip DOS line-endings
|
||||
gsub(/\r$/, "")
|
||||
|
||||
# count the number of lines
|
||||
inline = 1
|
||||
|
||||
# print the Makefile header
|
||||
print "# Makefile - " basefile(infile) > outfile
|
||||
print "" > outfile
|
||||
|
||||
# this specifies the default name for the dependencies file
|
||||
dependencies = ".dependencies"
|
||||
|
||||
# attemp to get the project name
|
||||
if(/^# Microsoft Developer Studio Project File/) {
|
||||
name = gensub(/^# Microsoft Developer Studio Project File - Name="(.*)".*$/, "\\1", "1")
|
||||
dependencies = name ".dep"
|
||||
}
|
||||
|
||||
# main loop
|
||||
while((getline < infile) == 1) {
|
||||
# Strip DOS line-endings
|
||||
gsub(/\r$/, "")
|
||||
|
||||
# increment the number of lines
|
||||
inline = inline + 1
|
||||
|
||||
# catch the target type definition
|
||||
if(/^# TARGTYPE/) {
|
||||
if (/[[:space:]]0x0101$/) {
|
||||
# Win32 (x86) Application
|
||||
exeflag = 1
|
||||
dllflag = 0
|
||||
libflag = 0
|
||||
}
|
||||
if (/[[:space:]]0x0102$/) {
|
||||
# Win32 (x86) Dynamic-Link Library
|
||||
exeflag = 0
|
||||
dllflag = 1
|
||||
libflag = 0
|
||||
}
|
||||
if (/[[:space:]]0x0103$/) {
|
||||
# Win32 (x86) Console Application
|
||||
exeflag = 1
|
||||
dllflag = 0
|
||||
libflag = 0
|
||||
}
|
||||
if (/[[:space:]]0x0104$/) {
|
||||
# Win32 (x86) Static Library
|
||||
exeflag = 0
|
||||
dllflag = 0
|
||||
libflag = 1
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
# catch the default configuration definition
|
||||
if(/^CFG=/) {
|
||||
print "ifndef CFG" > outfile
|
||||
print > outfile
|
||||
print "endif" > outfile
|
||||
}
|
||||
|
||||
# deal with the preprocessor commands
|
||||
if(/^!/) {
|
||||
# as GNU make doesn't have the '!ELSEIF' equivalent we have to use nested 'if ... else .. endif' to obtain the same effect
|
||||
# a stack is used to keep track of the current nested level
|
||||
|
||||
if(/^!IF/) {
|
||||
$0 = gensub(/^!IF[[:space:]]+(.+)[[:space:]]*==[[:space:]]*(.+)$/, "ifeq \\1 \\2", "1")
|
||||
$0 = gensub(/^!IF[[:space:]]+(.+)[[:space:]]*!=[[:space:]]*(.+)$/, "ifneq \\1 \\2", "1")
|
||||
print > outfile
|
||||
stacktop += 1
|
||||
stack[stacktop] = 1
|
||||
continue
|
||||
}
|
||||
if(/^!ELSE$/) {
|
||||
print "else"
|
||||
}
|
||||
if(/^!ELSEIF/) {
|
||||
$0 = gensub(/^!ELSEIF[[:space:]]+(.+)[[:space:]]*==[[:space:]]*(.+)$/, "else\nifeq \\1 \\2", "1")
|
||||
$0 = gensub(/^!ELSEIF[[:space:]]+(.+)[[:space:]]*!=[[:space:]]*(.+)$/, "else\nifneq \\1 \\2", "1")
|
||||
print > outfile
|
||||
stack[stacktop] += 1
|
||||
continue
|
||||
}
|
||||
if(/^!ENDIF[[:space:]]*$/) {
|
||||
for (i = 0; i < stack[stacktop]; i++)
|
||||
print "endif" > outfile
|
||||
stacktop -= 1
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
# catch the C++ compiler definition
|
||||
if(/^CPP=/) {
|
||||
print "CC=" prefix "gcc" > outfile
|
||||
print "CFLAGS=" > outfile
|
||||
print "CXX=" prefix "g++" > outfile
|
||||
print "CXXFLAGS=$(CFLAGS)" > outfile
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# catch the C++ compiler flags
|
||||
if(/^# ADD CPP /) {
|
||||
if (debug)
|
||||
print infile ":" inline ": " $0
|
||||
|
||||
# extract the flags from the line
|
||||
cflags = $0
|
||||
sub(/^# ADD CPP /, "", cflags)
|
||||
|
||||
split(" " cflags, options, /[[:space:]]+\//)
|
||||
|
||||
cflags = ""
|
||||
for(i in options) {
|
||||
option = options[i]
|
||||
|
||||
# translate the options
|
||||
# some of the translations effectively remove the option (and its arguments) since there is no translation equivalent
|
||||
|
||||
if (option == "") {
|
||||
} else if(option ~ /^nologo$/) {
|
||||
# Suppress Startup Banner and Information Messages
|
||||
option = ""
|
||||
} else if (option ~ /^W0$/) {
|
||||
# Turns off all warning messages
|
||||
option = "-w"
|
||||
} else if (option ~ /^W[123]$/) {
|
||||
# Warning Level
|
||||
option = "-W"
|
||||
} else if (option ~ /^W4$/) {
|
||||
# Warning Level
|
||||
option = "-Wall"
|
||||
} else if (option ~ /^WX$/) {
|
||||
# Warnings As Errors
|
||||
option = "-Werror"
|
||||
} else if (option ~ /^Gm$/) {
|
||||
# Enable Minimal Rebuild
|
||||
option = ""
|
||||
} else if (option ~ /^GX$/) {
|
||||
# Enable Exception Handling
|
||||
option = "-fexceptions"
|
||||
} else if (option ~ /^Z[d7iI]$/) {
|
||||
# Debug Info
|
||||
option = "-g"
|
||||
} else if (option ~ /^Od$/) {
|
||||
# Disable Optimizations
|
||||
option = "-O0"
|
||||
} else if (option ~ /^O1$/) {
|
||||
# Minimize Size
|
||||
option = "-Os"
|
||||
} else if (option ~ /^O2$/) {
|
||||
# Maximize Speed
|
||||
option = "-O2"
|
||||
} else if (option ~ /^Ob0$/) {
|
||||
# Disables inline Expansion
|
||||
option = "-fno-inline"
|
||||
} else if (option ~ /^Ob1$/) {
|
||||
# In-line Function Expansion
|
||||
option = ""
|
||||
} else if (option ~ /^Ob2$/) {
|
||||
# auto In-line Function Expansion
|
||||
option = "-finline-functions"
|
||||
} else if (option ~ /^Oy$/) {
|
||||
# Frame-Pointer Omission
|
||||
option = "-fomit-frame-pointer"
|
||||
} else if (option ~ /^GZ$/) {
|
||||
# Catch Release-Build Errors in Debug Build
|
||||
option = ""
|
||||
} else if (option ~ /^M[DLT]d?$/) {
|
||||
# Use Multithreaded Run-Time Library
|
||||
option = ""
|
||||
} else if (option ~ /^D/) {
|
||||
# Preprocessor Definitions
|
||||
gsub(/^D[[:space:]]*/, "", option)
|
||||
option = "-D" fixquotes(option)
|
||||
} else if (option ~ /^I/) {
|
||||
# Additional Include Directories
|
||||
gsub(/^I[[:space:]]*/, "", option)
|
||||
option = "-I" fixpath(option)
|
||||
} else if (option ~ /^U/) {
|
||||
# Undefines a previously defined symbol
|
||||
gsub(/^U[[:space:]]*/, "", option)
|
||||
option = "-U" fixquotes(option)
|
||||
} else if (option ~ /^Fp/) {
|
||||
# Name .PCH File
|
||||
option = ""
|
||||
} else if (option ~ /^F[Rr]/) {
|
||||
# Create .SBR File
|
||||
option = ""
|
||||
} else if (option ~ /^YX$/) {
|
||||
# Automatic Use of Precompiled Headers
|
||||
option = ""
|
||||
} else if (option ~ /^FD$/) {
|
||||
# Generate File Dependencies
|
||||
option = ""
|
||||
} else if (option ~ /^c$/) {
|
||||
# Compile Without Linking
|
||||
# this option is always present and is already specified in the suffix rules
|
||||
option = ""
|
||||
} else if (option ~ /^GB$/) {
|
||||
# Blend Optimization
|
||||
option = "-mcpu=pentiumpro -D_M_IX86=500"
|
||||
} else if (option ~ /^G6$/) {
|
||||
# Pentium Pro Optimization
|
||||
option = "-march=pentiumpro -D_M_IX86=600"
|
||||
} else if (option ~ /^G5$/) {
|
||||
# Pentium Optimization
|
||||
option = "-mcpu=pentium -D_M_IX86=500"
|
||||
} else if (option ~ /^G3$/) {
|
||||
# 80386 Optimization
|
||||
option = "-mcpu=i386 -D_M_IX86=300"
|
||||
} else if (option ~ /^G4$/) {
|
||||
# 80486 Optimization
|
||||
option = "-mcpu=i486 -D_M_IX86=400"
|
||||
} else if (option ~ /^Yc/) {
|
||||
# Create Precompiled Header
|
||||
option = ""
|
||||
} else if (option ~ /^Yu/) {
|
||||
# Use Precompiled Header
|
||||
option = ""
|
||||
} else if (option ~ /^Za$/) {
|
||||
# Disable Language Extensions
|
||||
option = "-ansi"
|
||||
} else if (option ~ /^Ze$/) {
|
||||
# Enable Microsoft Extensions
|
||||
print infile ":" inline ": /" option ": Enable Microsoft Extensions option ignored" > "/dev/stderr"
|
||||
option = ""
|
||||
} else if (option ~ /^Zm[[:digit:]]+$/) {
|
||||
# Specify Memory Allocation Limit
|
||||
option = ""
|
||||
} else if (option ~ /^Zp1$/) {
|
||||
# Packs structures on 1-byte boundaries
|
||||
option = "-fpack-struct"
|
||||
} else if (option ~ /^Zp(2|4|8|16)?$/) {
|
||||
# Struct Member Alignment
|
||||
option = ""
|
||||
print infile ":" inline ": /" option ": Struct Member Alignment option ignored" > "/dev/stderr"
|
||||
} else {
|
||||
print infile ":" inline ": /" option ": C compiler option not implemented" > "/dev/stderr"
|
||||
option = ""
|
||||
}
|
||||
|
||||
if (option != "") {
|
||||
if(cflags == "")
|
||||
cflags = option
|
||||
else
|
||||
cflags = cflags " " option
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# change the slashes
|
||||
gsub(/\\/, "/", cflags)
|
||||
|
||||
print "CFLAGS+=" cflags > outfile
|
||||
|
||||
if (debug)
|
||||
print outfile ": " "CFLAGS+=" cflags
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# catch the linker definition
|
||||
if(/^LINK32=/) {
|
||||
if (exeflag)
|
||||
print "LD=$(CXX) $(CXXFLAGS)" > outfile
|
||||
if (dllflag)
|
||||
print "LD=" prefix "dllwrap" > outfile
|
||||
|
||||
print "LDFLAGS=" > outfile
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# catch the linker flags
|
||||
if(/^# ADD LINK32 /) {
|
||||
if (debug)
|
||||
print infile ":" inline ": " $0
|
||||
|
||||
# extract the flags from the line
|
||||
ldflags = $0
|
||||
sub(/^# ADD LINK32 /, "", ldflags)
|
||||
|
||||
split(ldflags, options, /[[:space:]]+\//)
|
||||
|
||||
# attempts to get the used libraries to a seperate variable
|
||||
libs = options[1]
|
||||
libs = gensub(/([[:alnum:]/\\_-]+)\.lib/, "-l\\1", "g", libs)
|
||||
delete options[1]
|
||||
|
||||
ldflags = ""
|
||||
for(i in options) {
|
||||
option = options[i]
|
||||
|
||||
# translate the options
|
||||
# some of the translations effectively remove the option (and its arguments) since there is no translation equivalent
|
||||
if (option == "") {
|
||||
} else if (option ~ /^base:/) {
|
||||
# Base Address
|
||||
gsub(/^base:/, "--image-base ", option)
|
||||
} else if (option ~ /^debug$/) {
|
||||
# Generate Debug Info
|
||||
option = ""
|
||||
} else if (option ~ /^dll$/) {
|
||||
# Build a DLL
|
||||
dllflag = 1
|
||||
|
||||
# remove this option since the DLL output option is handled by the suffix rules
|
||||
option = ""
|
||||
} else if (option ~ /^incremental:[[:alpha:]]+$/) {
|
||||
# Link Incrmentally
|
||||
option = ""
|
||||
} else if (option ~ /^implib:/) {
|
||||
# Name import library
|
||||
gsub(/^implib:/, "", option)
|
||||
option = "--implib " fixpath(gensub(/([[:alnum:]_-]+)\.lib/, "lib\\1.a", "g", option))
|
||||
} else if (option ~ /^libpath:/) {
|
||||
# Additional Libpath
|
||||
gsub(/^libpath:/, "", option)
|
||||
option = "-L" fixpath(option)
|
||||
} else if (option ~ /^machine:[[:alnum:]]+$/) {
|
||||
# Specify Target Platform
|
||||
option = ""
|
||||
} else if (option ~ /^map/) {
|
||||
# Generate Mapfile
|
||||
if (option ~ /^map:/)
|
||||
gsub(/^map:/, "-Map ", option)
|
||||
else
|
||||
option = "-Map " name ".map"
|
||||
} else if(option ~ /^nologo$/) {
|
||||
# Suppress Startup Banner and Information Messages
|
||||
option = ""
|
||||
} else if (option ~ /^out:/) {
|
||||
# Output File Name
|
||||
target = fixpath(gensub(/out:("[^"]+"|[^[:space:]]+).*$/, "\\1", "1", option))
|
||||
|
||||
print "TARGET=" target > outfile
|
||||
|
||||
# remove this option since the output option is handled by the suffix rules
|
||||
option = ""
|
||||
} else if (option ~ /^pdbtype:/) {
|
||||
# Program Database Storage
|
||||
option = ""
|
||||
} else if (option ~ /^subsystem:/) {
|
||||
# Specify Subsystem
|
||||
gsub(/^subsystem:/, "-Wl,--subsystem,", option)
|
||||
} else if (option ~ /^version:[[:digit:].]+$/) {
|
||||
# Version Information
|
||||
option = ""
|
||||
} else {
|
||||
print infile ":" inline ": /" option ": linker option not implemented" > "/dev/stderr"
|
||||
option = ""
|
||||
}
|
||||
|
||||
if (option != "") {
|
||||
if(ldflags == "")
|
||||
ldflags = option
|
||||
else
|
||||
ldflags = ldflags " " option
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# attempt to get the name of the target from the '/out:' option
|
||||
if (ldflags ~ /\/out:/) { # Output File Name
|
||||
}
|
||||
|
||||
# change the slashes
|
||||
gsub(/\\/, "/", ldflags)
|
||||
|
||||
print "LDFLAGS+=" ldflags > outfile
|
||||
print "LIBS+=" libs > outfile
|
||||
|
||||
if (debug) {
|
||||
print outfile ": " "LDFLAGS+=" ldflags
|
||||
print outfile ": " "LIBS+=" libs
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# catch the library archiver definition
|
||||
if(/^LIB32=/) {
|
||||
libflag = 1
|
||||
|
||||
print "AR=" prefix "ar" > outfile
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# catch the library archiver flags
|
||||
if(/^# ADD LIB32 /) {
|
||||
# extract the flags from the line
|
||||
arflags = $0
|
||||
sub(/^# ADD LIB32 /, "", arflags)
|
||||
|
||||
# translate the options
|
||||
gsub(/\/nologo[[:space:]]*/, "", arflags) # Suppress Startup Banner and Information Messages
|
||||
gsub(/\/machine:[[:alnum:]]+[[:space:]]*/, "", arflags) # Specify Target Platform
|
||||
|
||||
# attempt to get the name of the target from the '/out:' option
|
||||
if (arflags ~ /\/out:/) {
|
||||
target = fixpath(gensub(/^.*\/out:(".*"|[^[:space:]]+).*$/, "\\1", "1", arflags))
|
||||
target = basedir(target) "/lib" basefile(gensub(/(\.[^.]*)?$/, ".a", 1, target))
|
||||
|
||||
print "TARGET=" target > outfile
|
||||
|
||||
# remove this option since the output option is handled differentely
|
||||
sub(/\/out:(".*"|[^[:space:]]+)/, "", arflags)
|
||||
}
|
||||
|
||||
# change the slashes
|
||||
gsub(/\\/, "/", arflags)
|
||||
|
||||
print "ARFLAGS=rus" > outfile
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# catch the resource compiler definition
|
||||
if(/^RSC=/) {
|
||||
print "RC=" prefix "windres -O COFF" > outfile
|
||||
continue
|
||||
}
|
||||
|
||||
# handle the begin of the target definition
|
||||
if(/^# Begin Target$/) {
|
||||
print "" > outfile
|
||||
|
||||
# print the default target name definition
|
||||
print "ifndef TARGET" > outfile
|
||||
if(exeflag)
|
||||
print "TARGET=" name ".exe" > outfile
|
||||
if(dllflag)
|
||||
print "TARGET=" name ".dll" > outfile
|
||||
if(libflag)
|
||||
print "TARGET=lib" name ".a" > outfile
|
||||
print "endif" > outfile
|
||||
print "" > outfile
|
||||
|
||||
# print the default target and the suffix rules
|
||||
print ".PHONY: all" > outfile
|
||||
print "all: $(TARGET)" > outfile
|
||||
print "" > outfile
|
||||
print "%.o: %.c" > outfile
|
||||
print "\t$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<" > outfile
|
||||
print "" > outfile
|
||||
print "%.o: %.cc" > outfile
|
||||
print "\t$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ -c $<" > outfile
|
||||
print "" > outfile
|
||||
print "%.o: %.cpp" > outfile
|
||||
print "\t$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ -c $<" > outfile
|
||||
print "" > outfile
|
||||
print "%.o: %.cxx" > outfile
|
||||
print "\t$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ -c $<" > outfile
|
||||
print "" > outfile
|
||||
print "%.res: %.rc" > outfile
|
||||
print "\t$(RC) $(CPPFLAGS) -o $@ -i $<" > outfile
|
||||
print "" > outfile
|
||||
|
||||
# initialize some bookeeping variables
|
||||
ngroups = 0 # number of groups in the target
|
||||
nsources = 0 # number of isolated sources in the target
|
||||
groupflag = 0 # state variable that indicates if we are inside or outside of a group definition
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# handle the end of a target definition
|
||||
if(/^# End Target$/) {
|
||||
# print the sources files definition that includes...
|
||||
printf "SRCS=" > outfile
|
||||
|
||||
# ... the sources groups variables...
|
||||
for (i = 0; i < ngroups; i++)
|
||||
printf "$(%s) ", groups[i] > outfile
|
||||
|
||||
# ... and isolated sources not included in any group
|
||||
if (nsources) {
|
||||
print " \\" > outfile
|
||||
for (i = 0; i < nsources - 1; i++)
|
||||
print "\t" sources[i] " \\" > outfile
|
||||
print "\t" sources[i] > outfile
|
||||
}
|
||||
else
|
||||
print "" > outfile
|
||||
print "" > outfile
|
||||
|
||||
# define the objects automatically from the sources in the Makefile
|
||||
print "OBJS=$(patsubst %.rc,%.res,$(patsubst %.cxx,%.o,$(patsubst %.cpp,%.o,$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(filter %.c %.cc %.cpp %.cxx %.rc,$(SRCS)))))))" > outfile
|
||||
print "" > outfile
|
||||
|
||||
# print the target rule, according with the type of target
|
||||
print "$(TARGET): $(OBJS)" > outfile
|
||||
if (exeflag)
|
||||
print "\t$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)" > outfile
|
||||
if (dllflag)
|
||||
print "\t$(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)" > outfile
|
||||
if (libflag)
|
||||
print "\t$(AR) $(ARFLAGS) $@ $(OBJS)" > outfile
|
||||
print "" > outfile
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# gather groups of source files to put them in diferent variables in the Makefile
|
||||
if(/^# Begin Group/) {
|
||||
# get the group name
|
||||
groupname = gensub(/^# Begin Group "(.*)"$/, "\\1", "1")
|
||||
|
||||
# take the variable name as the upper case of the group name and changing the spaces to underscores
|
||||
groupvarname = toupper(groupname)
|
||||
gsub(/[[:space:]]/, "_", groupvarname)
|
||||
|
||||
# add this information to the groups array
|
||||
groups[ngroups] = groupvarname
|
||||
ngroups += 1
|
||||
|
||||
# initialize some bookeeping variables
|
||||
ngsources = 0 # number of sources in this group
|
||||
|
||||
# signal that we are inside a group
|
||||
groupflag = 1
|
||||
|
||||
continue
|
||||
}
|
||||
if(/^# End Group$/) {
|
||||
# print the group source variable definition
|
||||
printf "%s=", groupvarname > outfile
|
||||
if (ngsources) {
|
||||
for (i = 0; i < ngsources; i++)
|
||||
printf " \\\n\t%s", gsources[i] > outfile
|
||||
}
|
||||
print "" > outfile
|
||||
print "" > outfile
|
||||
|
||||
# signal that we are outside a group
|
||||
groupflag = 0
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
if (/^SOURCE=/) {
|
||||
# get the source file name
|
||||
source = fixpath(gensub(/^SOURCE=(.*)$/, "\\1", "1"))
|
||||
|
||||
# add to the group sources or isolated sources according we are in a group or not
|
||||
if (groupflag)
|
||||
{
|
||||
gsources[ngsources] = source
|
||||
ngsources += 1
|
||||
}
|
||||
else
|
||||
{
|
||||
sources[nsources] = source
|
||||
nsources += 1
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# attempts to handle custom builds definition
|
||||
if(/^# Begin Custom Build/) {
|
||||
print infile ":" inline ": " source ": Custom Build" > "/dev/stderr"
|
||||
|
||||
# signal we are inside a custom build definition
|
||||
customflag = 1
|
||||
ncustomvars = 0
|
||||
|
||||
continue
|
||||
}
|
||||
if(/^# End Custom Build/) {
|
||||
# signal we are leaving a custom build definition
|
||||
customflag = 0
|
||||
|
||||
continue
|
||||
}
|
||||
if(customflag) {
|
||||
if (debug)
|
||||
print infile ": " $0
|
||||
|
||||
# MSDS handles customs builds defining a series of variables for the user convenience
|
||||
# handle their definition ...
|
||||
if($0 ~ /^IntDir=/) {
|
||||
gsub(/^IntDir=/, "", $0)
|
||||
Intdir = fixpath($0)
|
||||
continue
|
||||
}
|
||||
if($0 ~ /^IntPath=/) {
|
||||
gsub(/^IntPath=/, "", $0)
|
||||
IntPath = fixpath($0)
|
||||
continue
|
||||
}
|
||||
if($0 ~ /^OutDir=/) {
|
||||
gsub(/^OutDir=/, "", $0)
|
||||
OutDir_ = fixpath($0)
|
||||
OutDir = "."
|
||||
continue
|
||||
}
|
||||
if($0 ~ /^InputDir=/) {
|
||||
gsub(/^InputDir=/, "", $0)
|
||||
InputDir = fixpath($0)
|
||||
continue
|
||||
}
|
||||
if($0 ~ /^InputName=/) {
|
||||
gsub(/^InputName=/, "", $0)
|
||||
InputName = fixquotes($0)
|
||||
continue
|
||||
}
|
||||
if($0 ~ /^InputPath=/) {
|
||||
gsub(/^InputPath=/, "", $0)
|
||||
InputPath = fixpath($0)
|
||||
continue
|
||||
}
|
||||
if($0 ~ /^TargetDir=/) {
|
||||
gsub(/^TargetDir=/, "", $0)
|
||||
TargetDir_ = fixpath($0)
|
||||
TargetDir = "."
|
||||
continue
|
||||
}
|
||||
if($0 ~ /^TargetPath=/) {
|
||||
gsub(/^TargetPath=/, "", $0)
|
||||
gsub(TargetDir_, ".", $0)
|
||||
TargetPath = fixpath($0)
|
||||
continue
|
||||
}
|
||||
|
||||
# ... and substitute them in the rules
|
||||
gsub(/\$\(IntDir\)/, IntDir)
|
||||
gsub(/\$\(IntPath\)/, IntPath)
|
||||
gsub(/\$\(OutDir\)/, OutDir)
|
||||
gsub(/\$\(InputDir\)/, InputDir)
|
||||
gsub(/\$\(InputName\)/, InputName)
|
||||
gsub(/\$\(InputPath\)/, InputPath)
|
||||
gsub(/\$\(TargetDir\)/, TargetDir)
|
||||
gsub(/\$\(TargetPath\)/, TargetPath)
|
||||
|
||||
gsub(/\$\(SOURCE\)/, source)
|
||||
gsub(/"\$\(INTDIR\)"[[:space:]]*/, "")
|
||||
gsub(/"\$\(OUTDIR\)"[[:space:]]*/, "")
|
||||
|
||||
# do a serie of generic actions to convert the rule
|
||||
gsub(/^ /, "\t")
|
||||
gsub(/\\/, "/")
|
||||
gsub(/\/$/, "\\")
|
||||
gsub(/\.obj/, ".o")
|
||||
|
||||
print > outfile
|
||||
|
||||
if (debug)
|
||||
print outfile ": " $0
|
||||
}
|
||||
}
|
||||
|
||||
# print the 'clean' target rule
|
||||
print ".PHONY: clean" > outfile
|
||||
print "clean:" > outfile
|
||||
print "\t-" rm " $(OBJS) $(TARGET) " dependencies > outfile
|
||||
print "" > outfile
|
||||
|
||||
# print the 'depends' target rule for automatic dependencies generation
|
||||
print ".PHONY: depends" > outfile
|
||||
print "depends:" > outfile
|
||||
print "\t-$(CXX) $(CXXFLAGS) $(CPPFLAGS) -MM $(filter %.c %.cc %.cpp %.cxx,$(SRCS)) > " dependencies> outfile
|
||||
print "" > outfile
|
||||
print "-include " dependencies > outfile
|
||||
print "" > outfile
|
||||
|
||||
# close the files
|
||||
close(outfile)
|
||||
close(infile)
|
||||
}
|
||||
|
||||
# parses a workpace file (.dsw) specified by 'infile' and generates a makefile to 'outfile'
|
||||
function parse_dsw(infile, outfile, i)
|
||||
{
|
||||
print infile
|
||||
|
||||
# print the Makefile header
|
||||
print "# Makefile - " basefile(infile) > outfile
|
||||
print "" > outfile
|
||||
|
||||
# initialize the number of projects counter
|
||||
nprojects = 0
|
||||
|
||||
# main loop
|
||||
while((getline < infile) == 1) {
|
||||
# catch a project definition
|
||||
if(/^Project:/) {
|
||||
# increment the project counter
|
||||
project = nprojects
|
||||
nprojects++
|
||||
|
||||
# extract the project name and filename
|
||||
project_name[project] = fixpath(gensub(/^Project:[[:blank:]]+(.*)=(.*)[[:blank:]]+-[[:blank:]]+.*$/, "\\1", 1))
|
||||
project_file[project] = fixpath(gensub(/^Project:[[:blank:]]+(.*)=(.*)[[:blank:]]+-[[:blank:]]+.*$/, "\\2", 1))
|
||||
|
||||
# check for a .dsp file extension
|
||||
if(project_file[project] ~ /\.[Dd][Ss][Pp]$/) {
|
||||
# create the output filename by renaming the file extension from .dsp to .mak
|
||||
project_makefile[project] = project_file[project]
|
||||
sub(/(\.[^.]*)?$/, ".mak", project_makefile[project])
|
||||
}
|
||||
else
|
||||
project_makefile[project] = ""
|
||||
|
||||
# initialize the project dependencies
|
||||
project_dependencies[project] = ""
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# catch a project dependency marker
|
||||
if(project && /^{{{$/) {
|
||||
# read dependencies until the end marker
|
||||
while((getline < infile) == 1 && !/^}}}$/)
|
||||
if(/^[[:blank:]]*Project_Dep_Name[[:blank:]]+/)
|
||||
project_dependencies[project] = project_dependencies[project] " " fixpath(gensub(/^[[:blank:]]*Project_Dep_Name[[:blank:]]+(.*)$/, "\\1", 1))
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
# catch other (perhaps important) section definitions and produce a warning
|
||||
if(/^[[:alpha:]]+:/)
|
||||
{
|
||||
project = 0
|
||||
print infile ": " gensub(/^([[:alpha:]]+):/, "\\1", 1) ": unknown section" > "/dev/stderr"
|
||||
}
|
||||
}
|
||||
|
||||
# print the default target rule
|
||||
print ".PHONY: all" > outfile
|
||||
printf "all:" > outfile
|
||||
for(i = 0; i < nprojects; i++)
|
||||
printf " \\\n\t%s", project_name[i] > outfile
|
||||
print "" > outfile
|
||||
print "" > outfile
|
||||
|
||||
# print the rules for each project target
|
||||
for(i = 0; i < nprojects; i++) {
|
||||
print ".PHONY: " project_name[i] > outfile
|
||||
print project_name[i] ":" project_dependencies[i] > outfile
|
||||
if(project_makefile[i] != "") {
|
||||
if(basedir(project_makefile[i]) == "")
|
||||
print "\t$(MAKE) -f " project_makefile[i] > outfile
|
||||
else
|
||||
print "\t$(MAKE) -C " basedir(project_makefile[i]) " -f " basefile(project_makefile[i]) > outfile
|
||||
}
|
||||
print "" > outfile
|
||||
}
|
||||
|
||||
# print the 'clean' target rule
|
||||
print ".PHONY: clean" > outfile
|
||||
print "clean:" > outfile
|
||||
for(i = 0; i < nprojects; i++)
|
||||
if(project_makefile[i] != "") {
|
||||
if(basedir(project_makefile[i]) == "")
|
||||
print "\t$(MAKE) -f " project_makefile[i] " clean" > outfile
|
||||
else
|
||||
print "\t$(MAKE) -C " basedir(project_makefile[i]) " -f " basefile(project_makefile[i]) " clean" > outfile
|
||||
}
|
||||
print "" > outfile
|
||||
|
||||
# print the 'depends' target rule for automatic dependencies generation
|
||||
print ".PHONY: depends" > outfile
|
||||
print "depends:" > outfile
|
||||
for(i = 0; i < nprojects; i++)
|
||||
if(project_makefile[i] != "") {
|
||||
if(basedir(project_makefile[i]) == "")
|
||||
print "\t$(MAKE) -f " project_makefile[i] " depends" > outfile
|
||||
else
|
||||
print "\t$(MAKE) -C " basedir(project_makefile[i]) " -f " basefile(project_makefile[i]) " depends" > outfile
|
||||
}
|
||||
print "" > outfile
|
||||
|
||||
close(outfile)
|
||||
close(infile)
|
||||
|
||||
# parse every project file
|
||||
for(i = 0; i < nprojects; i++)
|
||||
if(project_makefile[i] != "") {
|
||||
if(basedir(infile) == "")
|
||||
parse_dsp(project_file[i], project_makefile[i])
|
||||
else
|
||||
parse_dsp(basedir(infile) "\\" project_file[i], basedir(infile) "\\" project_makefile[i])
|
||||
}
|
||||
}
|
||||
|
||||
# main program
|
||||
BEGIN {
|
||||
print "dsw2mak.awk Generates a Makefile from a .DSW/.DSP file Jose Fonseca"
|
||||
print ""
|
||||
|
||||
# for each argument ...
|
||||
for (i = 1; i < ARGC; i++) {
|
||||
infile = ARGV[i]
|
||||
|
||||
# determine whether is a workspace or a project file and parse it
|
||||
if(infile ~ /\.[Dd][Ss][Ww]$/) {
|
||||
# create the output filename by renaming the filename to Makefile
|
||||
outfile = infile
|
||||
sub(/[^\/\\:]+$/, "Makefile", outfile)
|
||||
|
||||
parse_dsw(infile, outfile)
|
||||
} else if(infile ~ /\.[Dd][Ss][Pp]$/) {
|
||||
# create the output filename by renaming the file extension from .dsp to .mak
|
||||
outfile = infile
|
||||
sub(/(\.[^.]*)?$/, ".mak", outfile)
|
||||
|
||||
parse_dsp(infile, outfile)
|
||||
} else {
|
||||
print infile ": unknown file format" > "/dev/stderr"
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
TBE/MinGW/bin/exchndl.dll
Normal file
BIN
TBE/MinGW/bin/exchndl.dll
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/g++.exe
Normal file
BIN
TBE/MinGW/bin/g++.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/g77.exe
Normal file
BIN
TBE/MinGW/bin/g77.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/gcc.exe
Normal file
BIN
TBE/MinGW/bin/gcc.exe
Normal file
Binary file not shown.
551
TBE/MinGW/bin/gccbug
Normal file
551
TBE/MinGW/bin/gccbug
Normal file
@@ -0,0 +1,551 @@
|
||||
#!/bin/sh
|
||||
# Submit a problem report to a GNATS site.
|
||||
# Copyright (C) 1993, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
# Contributed by Brendan Kehoe (brendan@cygnus.com), based on a
|
||||
# version written by Heinz G. Seidl (hgs@cygnus.com).
|
||||
#
|
||||
# This file is part of GNU GNATS.
|
||||
#
|
||||
# GNU GNATS is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# GNU GNATS is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU GNATS; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
# Boston, MA 02111-1307, USA.
|
||||
|
||||
# The version of this send-pr.
|
||||
VERSION=3.113
|
||||
|
||||
# The submitter-id for your site.
|
||||
SUBMITTER=net
|
||||
|
||||
# The default mail address for PR submissions.
|
||||
GNATS_ADDR=gcc-gnats@gcc.gnu.org
|
||||
|
||||
# The default release for this host.
|
||||
DEFAULT_RELEASE="3.2.3 (mingw special 20030425-1)"
|
||||
|
||||
# The default organization.
|
||||
DEFAULT_ORGANIZATION=
|
||||
|
||||
# What mailer to use. This must come after the config file, since it is
|
||||
# host-dependent.
|
||||
# Copied from cvsbug
|
||||
if [ -f /usr/sbin/sendmail ]; then
|
||||
MAIL_AGENT="/usr/sbin/sendmail -oi -t"
|
||||
else
|
||||
MAIL_AGENT="/usr/lib/sendmail -oi -t"
|
||||
fi
|
||||
MAILER=`echo $MAIL_AGENT | sed -e 's, .*,,'`
|
||||
if [ ! -f "$MAILER" ] ; then
|
||||
echo "$COMMAND: Cannot file mail program \"$MAILER\"."
|
||||
echo "$COMMAND: Please fix the MAIL_AGENT entry in the $COMMAND file."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# How to read the passwd database.
|
||||
PASSWD="cat /etc/passwd"
|
||||
|
||||
ECHON=bsd
|
||||
|
||||
if [ $ECHON = bsd ] ; then
|
||||
ECHON1="echo -n"
|
||||
ECHON2=
|
||||
elif [ $ECHON = sysv ] ; then
|
||||
ECHON1=echo
|
||||
ECHON2='\c'
|
||||
else
|
||||
ECHON1=echo
|
||||
ECHON2=
|
||||
fi
|
||||
|
||||
#
|
||||
|
||||
if [ -z "$TMPDIR" ]; then
|
||||
TMPDIR=/tmp
|
||||
else
|
||||
if [ "`echo $TMPDIR | grep '/$'`" != "" ]; then
|
||||
TMPDIR="`echo $TMPDIR | sed -e 's,/$,,'`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ yes = yes ]; then
|
||||
TEMP0=`mktemp $TMPDIR/poXXXXXX` || exit 1
|
||||
TEMP=`mktemp $TMPDIR/pXXXXXX` || exit 1
|
||||
BAD=`mktemp $TMPDIR/pbadXXXXXX` || exit 1
|
||||
REF=`mktemp $TMPDIR/pfXXXXXX` || exit 1
|
||||
REMOVE_TEMP="rm -f $TEMP0 $TEMP $BAD $REF"
|
||||
else
|
||||
TEMPD=$TMPDIR/pd$$
|
||||
TEMP0=$TEMPD/po$$
|
||||
TEMP=$TEMPD/p$$
|
||||
BAD=$TEMPD/pbad$$
|
||||
REF=$TEMPD/pf$$
|
||||
mkdir $TEMPD || exit 1
|
||||
REMOVE_TEMP="rm -rf $TEMPD"
|
||||
fi
|
||||
|
||||
# find a user name
|
||||
if [ "$LOGNAME" = "" ]; then
|
||||
if [ "$USER" != "" ]; then
|
||||
LOGNAME="$USER"
|
||||
else
|
||||
LOGNAME="UNKNOWN"
|
||||
fi
|
||||
fi
|
||||
|
||||
FROM="$LOGNAME"
|
||||
REPLY_TO="${REPLY_TO:-${REPLYTO:-$LOGNAME}}"
|
||||
|
||||
# Find out the name of the originator of this PR.
|
||||
if [ -n "$NAME" ]; then
|
||||
ORIGINATOR="$NAME"
|
||||
elif [ -f $HOME/.fullname ]; then
|
||||
ORIGINATOR="`sed -e '1q' $HOME/.fullname`"
|
||||
else
|
||||
# Must use temp file due to incompatibilities in quoting behavior
|
||||
# and to protect shell metacharacters in the expansion of $LOGNAME
|
||||
$PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP0
|
||||
ORIGINATOR="`cat $TEMP0`"
|
||||
rm -f $TEMP0
|
||||
fi
|
||||
|
||||
if [ -n "$ORGANIZATION" ]; then
|
||||
if [ -f "$ORGANIZATION" ]; then
|
||||
ORGANIZATION="`cat $ORGANIZATION`"
|
||||
fi
|
||||
else
|
||||
if [ -n "$DEFAULT_ORGANIZATION" ]; then
|
||||
ORGANIZATION="$DEFAULT_ORGANIZATION"
|
||||
elif [ -f $HOME/.organization ]; then
|
||||
ORGANIZATION="`cat $HOME/.organization`"
|
||||
fi
|
||||
fi
|
||||
|
||||
# If they don't have a preferred editor set, then use
|
||||
if [ -z "$VISUAL" ]; then
|
||||
if [ -z "$EDITOR" ]; then
|
||||
EDIT=vi
|
||||
else
|
||||
EDIT="$EDITOR"
|
||||
fi
|
||||
else
|
||||
EDIT="$VISUAL"
|
||||
fi
|
||||
|
||||
# Find out some information.
|
||||
SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \
|
||||
( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""`
|
||||
ARCH=`[ -f /bin/arch ] && /bin/arch`
|
||||
MACHINE=`[ -f /bin/machine ] && /bin/machine`
|
||||
|
||||
COMMAND=`echo $0 | sed -e 's,.*/,,'`
|
||||
USAGE="Usage: $COMMAND [-PVL] [-t address] [-f filename] [-s severity]
|
||||
[-c address] [--request-id] [--version]"
|
||||
REMOVE=
|
||||
BATCH=
|
||||
CC=
|
||||
SEVERITY_C=
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-r) ;; # Ignore for backward compat.
|
||||
-t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi
|
||||
shift ; GNATS_ADDR="$1"
|
||||
EXPLICIT_GNATS_ADDR=true
|
||||
;;
|
||||
-f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi
|
||||
shift ; IN_FILE="$1"
|
||||
if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then
|
||||
echo "$COMMAND: cannot read $IN_FILE"
|
||||
$REMOVE_TEMP
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
-b | --batch) BATCH=true ;;
|
||||
-c | --cc) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi
|
||||
shift ; CC="$1"
|
||||
;;
|
||||
-s | --severity) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi
|
||||
shift ; SEVERITY_C="$1"
|
||||
;;
|
||||
-p | -P | --print) PRINT=true ;;
|
||||
-L | --list) FORMAT=norm ;;
|
||||
-l | -CL | --lisp) FORMAT=lisp ;;
|
||||
--request-id) REQUEST_ID=true ;;
|
||||
-h | --help) echo "$USAGE"; $REMOVE_TEMP; exit 0 ;;
|
||||
-V | --version) cat <<EOF
|
||||
gccbug (GCC) $DEFAULT_RELEASE
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
EOF
|
||||
$REMOVE_TEMP; exit 0 ;;
|
||||
-*) echo "$USAGE" ; $REMOVE_TEMP; exit 1 ;;
|
||||
*) echo "$USAGE" ; $REMOVE_TEMP; exit 1
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# spam does not need to be listed here
|
||||
CATEGORIES="ada bootstrap c++ c debug fortran java libf2c libgcj libobjc libstdc++ middle-end objc optimization other preprocessor target web"
|
||||
|
||||
case "$FORMAT" in
|
||||
lisp) echo "$CATEGORIES" | \
|
||||
awk 'BEGIN {printf "( "} {printf "(\"%s\") ",$0} END {printf ")\n"}'
|
||||
$REMOVE_TEMP
|
||||
exit 0
|
||||
;;
|
||||
norm) l=`echo "$CATEGORIES" | \
|
||||
awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } }
|
||||
END {print max + 1;}'`
|
||||
c=`expr 70 / $l`
|
||||
if [ $c -eq 0 ]; then c=1; fi
|
||||
echo "$CATEGORIES" | \
|
||||
awk 'BEGIN {print "Known categories:"; i = 0 }
|
||||
{ printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } }
|
||||
END { print ""; }'
|
||||
$REMOVE_TEMP
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
ORIGINATOR_C='<name of the PR author (one line)>'
|
||||
ORGANIZATION_C='<organization of PR author (multiple lines)>'
|
||||
SYNOPSIS_C='<synopsis of the problem (one line)>'
|
||||
if [ -z "$SEVERITY_C" ]; then
|
||||
SEVERITY_C='<[ non-critical | serious | critical ] (one line)>'
|
||||
fi
|
||||
PRIORITY_C='<[ low | medium ] (one line)>'
|
||||
CATEGORY_C='<choose from the top of this file (one line)>'
|
||||
RELEASE_C='<release number or tag (one line)>'
|
||||
ENVIRONMENT_C='<machine, os, target, libraries (multiple lines)>'
|
||||
DESCRIPTION_C='<precise description of the problem (multiple lines)>'
|
||||
HOW_TO_REPEAT_C='<When reporting a compiler error, preprocessor output must be included>'
|
||||
FIX_C='<how to correct or work around the problem, if known (multiple lines)>'
|
||||
|
||||
# Catch some signals. ($xs kludge needed by Sun /bin/sh)
|
||||
xs=0
|
||||
trap '$REMOVE_TEMP; exit $xs' 0
|
||||
trap 'echo "$COMMAND: Aborting ..."; $REMOVE_TEMP; xs=1; exit' 1 3 13 15
|
||||
|
||||
# If they told us to use a specific file, then do so.
|
||||
if [ -n "$IN_FILE" ]; then
|
||||
if [ "$IN_FILE" = "-" ]; then
|
||||
# The PR is coming from the standard input.
|
||||
if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
|
||||
sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" > $TEMP
|
||||
else
|
||||
cat > $TEMP
|
||||
fi
|
||||
else
|
||||
# Use the file they named.
|
||||
if [ -n "$EXPLICIT_GNATS_ADDR" ]; then
|
||||
sed -e "s;^[Tt][Oo]:.*;To: $GNATS_ADDR;" $IN_FILE > $TEMP
|
||||
else
|
||||
cat $IN_FILE > $TEMP
|
||||
fi
|
||||
fi
|
||||
else
|
||||
|
||||
if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
|
||||
# If their PR_FORM points to a bogus entry, then bail.
|
||||
if [ ! -f "$PR_FORM" -o ! -r "$PR_FORM" -o ! -s "$PR_FORM" ]; then
|
||||
echo "$COMMAND: can't seem to read your template file (\`$PR_FORM'), ignoring PR_FORM"
|
||||
sleep 1
|
||||
PRINT_INTERN=bad_prform
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$PR_FORM" -a -z "$PRINT_INTERN" ]; then
|
||||
cp $PR_FORM $TEMP ||
|
||||
( echo "$COMMAND: could not copy $PR_FORM" ; xs=1; exit )
|
||||
else
|
||||
for file in $TEMP $REF ; do
|
||||
cat > $file << '__EOF__'
|
||||
SEND-PR: -*- send-pr -*-
|
||||
SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as
|
||||
SEND-PR: will all comments (text enclosed in `<' and `>').
|
||||
SEND-PR:
|
||||
SEND-PR: Please consult the GCC manual if you are not sure how to
|
||||
SEND-PR: fill out a problem report.
|
||||
SEND-PR: Note that the Synopsis field is mandatory. The Subject (for
|
||||
SEND-PR: the mail) will be made the same as Synopsis unless explicitly
|
||||
SEND-PR: changed.
|
||||
SEND-PR:
|
||||
SEND-PR: Choose from the following categories:
|
||||
SEND-PR:
|
||||
__EOF__
|
||||
|
||||
# Format the categories so they fit onto lines.
|
||||
l=`echo "$CATEGORIES" | \
|
||||
awk 'BEGIN {max = 0; } { if (length($0) > max) { max = length($0); } }
|
||||
END {print max + 1;}'`
|
||||
c=`expr 61 / $l`
|
||||
if [ $c -eq 0 ]; then c=1; fi
|
||||
echo "$CATEGORIES" | \
|
||||
awk 'BEGIN {printf "SEND-PR: "; i = 0 }
|
||||
{ printf ("%-'$l'.'$l's", $0);
|
||||
if ((++i % '$c') == 0) { printf "\nSEND-PR: " } }
|
||||
END { printf "\nSEND-PR:\n"; }' >> $file
|
||||
|
||||
cat >> $file << __EOF__
|
||||
To: $GNATS_ADDR
|
||||
Subject:
|
||||
From: $FROM
|
||||
Reply-To: $REPLYTO
|
||||
Cc: $CC
|
||||
X-send-pr-version: $VERSION
|
||||
X-GNATS-Notify:
|
||||
|
||||
|
||||
>Submitter-Id: $SUBMITTER
|
||||
>Originator: $ORIGINATOR
|
||||
>Organization: ${ORGANIZATION-$ORGANIZATION_C}
|
||||
>Confidential: no
|
||||
SEND-PR: Leave "Confidential" as "no"; all GCC PRs are public.
|
||||
>Synopsis: $SYNOPSIS_C
|
||||
>Severity: $SEVERITY_C
|
||||
SEND-PR: critical GCC is completely not operational; no work-around known.
|
||||
SEND-PR: serious GCC is not working properly; a work-around is possible.
|
||||
SEND-PR: non-critical Report indicates minor problem.
|
||||
>Priority: $PRIORITY_C
|
||||
SEND-PR: medium The problem should be solved in the next release.
|
||||
SEND-PR: low The problem should be solve in a future release.
|
||||
>Category: $CATEGORY_C
|
||||
>Class: <[ doc-bug | accepts-illegal | rejects-legal | wrong-code | ice-on-legal-code| ice-on-illegal-code | pessimizes-code | sw-bug | change-request | support ] (one line)>
|
||||
SEND-PR: doc-bug The documentation is incorrect.
|
||||
SEND-PR: accepts-illegal GCC fails to reject erroneous code.
|
||||
SEND-PR: rejects-legal GCC gives an error message for correct code.
|
||||
SEND-PR: wrong-code The machine code generated by gcc is incorrect.
|
||||
SEND-PR: ice-on-legal-code GCC gives an Internal Compiler Error (ICE)
|
||||
SEND-PR: for correct code
|
||||
SEND-PR: ice-on-illegal-code GCC gives an ICE instead of reporting an error
|
||||
SEND-PR: pessimizes-code GCC misses an important optimization opportunity
|
||||
SEND-PR: sw-bug Software bug of some other class than above
|
||||
SEND-PR: change-request A feature in GCC is missing.
|
||||
SEND-PR: support I need help with gcc.
|
||||
>Release: ${DEFAULT_RELEASE-$RELEASE_C}
|
||||
>Environment:
|
||||
`[ -n "$SYSTEM" ] && echo System: $SYSTEM`
|
||||
`[ -n "$ARCH" ] && echo Architecture: $ARCH`
|
||||
`[ -n "$MACHINE" ] && echo Machine: $MACHINE`
|
||||
$ENVIRONMENT_C
|
||||
host: i386-pc-mingw32
|
||||
build: i386-pc-mingw32
|
||||
target: i386-pc-mingw32
|
||||
configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c++,f77,objc --disable-win32-registry --disable-shared --enable-sjlj-exceptions
|
||||
>Description:
|
||||
$DESCRIPTION_C
|
||||
>How-To-Repeat:
|
||||
$HOW_TO_REPEAT_C
|
||||
>Fix:
|
||||
$FIX_C
|
||||
__EOF__
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$PRINT" = true -o "$PRINT_INTERN" = true ]; then
|
||||
cat $TEMP
|
||||
xs=0; exit
|
||||
fi
|
||||
|
||||
chmod u+w $TEMP
|
||||
if [ -z "$REQUEST_ID" ]; then
|
||||
eval $EDIT $TEMP
|
||||
else
|
||||
ed -s $TEMP << '__EOF__'
|
||||
/^Subject/s/^Subject:.*/Subject: request for a customer id/
|
||||
/^>Category/s/^>Category:.*/>Category: send-pr/
|
||||
w
|
||||
q
|
||||
__EOF__
|
||||
fi
|
||||
|
||||
if cmp -s $REF $TEMP ; then
|
||||
echo "$COMMAND: problem report not filled out, therefore not sent"
|
||||
xs=1; exit
|
||||
fi
|
||||
fi
|
||||
|
||||
#
|
||||
# Check the enumeration fields
|
||||
|
||||
# This is a "sed-subroutine" with one keyword parameter
|
||||
# (with workaround for Sun sed bug)
|
||||
#
|
||||
SED_CMD='
|
||||
/$PATTERN/{
|
||||
s|||
|
||||
s|<.*>||
|
||||
s|^[ ]*||
|
||||
s|[ ]*$||
|
||||
p
|
||||
q
|
||||
}'
|
||||
|
||||
|
||||
while [ -z "$REQUEST_ID" ]; do
|
||||
CNT=0
|
||||
|
||||
# 1) Confidential
|
||||
#
|
||||
PATTERN=">Confidential:"
|
||||
CONFIDENTIAL=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
|
||||
case "$CONFIDENTIAL" in
|
||||
no) CNT=`expr $CNT + 1` ;;
|
||||
*) echo "$COMMAND: \`$CONFIDENTIAL' is not a valid value for \`Confidential'." ;;
|
||||
esac
|
||||
#
|
||||
# 2) Severity
|
||||
#
|
||||
PATTERN=">Severity:"
|
||||
SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
|
||||
case "$SEVERITY" in
|
||||
""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;;
|
||||
*) echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'."
|
||||
esac
|
||||
#
|
||||
# 3) Priority
|
||||
#
|
||||
PATTERN=">Priority:"
|
||||
PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
|
||||
case "$PRIORITY" in
|
||||
""|low|medium) CNT=`expr $CNT + 1` ;;
|
||||
high) echo "$COMMAND: \`Priority: high' is reserved for GCC maintainers." ;;
|
||||
*) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'."
|
||||
esac
|
||||
#
|
||||
# 4) Category
|
||||
#
|
||||
PATTERN=">Category:"
|
||||
CATEGORY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
|
||||
FOUND=
|
||||
for C in $CATEGORIES
|
||||
do
|
||||
if [ "$C" = "$CATEGORY" ]; then FOUND=true ; break ; fi
|
||||
done
|
||||
if [ -n "$FOUND" ]; then
|
||||
CNT=`expr $CNT + 1`
|
||||
else
|
||||
if [ -z "$CATEGORY" ]; then
|
||||
echo "$COMMAND: you must include a Category: field in your report."
|
||||
else
|
||||
echo "$COMMAND: \`$CATEGORY' is not a known category."
|
||||
fi
|
||||
fi
|
||||
#
|
||||
# 5) Class
|
||||
#
|
||||
PATTERN=">Class:"
|
||||
CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
|
||||
case "$CLASS" in
|
||||
""|doc-bug|accepts-illegal|rejects-legal|wrong-code|ice-on-legal-code|ice-on-illegal-code|pessimizes-code|sw-bug|change-request|support) CNT=`expr $CNT + 1` ;;
|
||||
*) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'."
|
||||
esac
|
||||
#
|
||||
# 6) Check that synopsis is not empty
|
||||
#
|
||||
if grep "^>Synopsis:[ ]*${SYNOPSIS_C}\$" $TEMP > /dev/null
|
||||
then
|
||||
echo "$COMMAND: Synopsis must not be empty."
|
||||
else
|
||||
CNT=`expr $CNT + 1`
|
||||
fi
|
||||
|
||||
[ $CNT -lt 6 -a -z "$BATCH" ] &&
|
||||
echo "Errors were found with the problem report."
|
||||
|
||||
while true; do
|
||||
if [ -z "$BATCH" ]; then
|
||||
$ECHON1 "a)bort, e)dit or s)end? $ECHON2"
|
||||
read input
|
||||
else
|
||||
if [ $CNT -eq 6 ]; then
|
||||
input=s
|
||||
else
|
||||
input=a
|
||||
fi
|
||||
fi
|
||||
case "$input" in
|
||||
a*)
|
||||
if [ -z "$BATCH" ]; then
|
||||
echo "$COMMAND: the problem report remains in $BAD and is not sent."
|
||||
REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF"
|
||||
mv $TEMP $BAD
|
||||
else
|
||||
echo "$COMMAND: the problem report is not sent."
|
||||
fi
|
||||
xs=1; exit
|
||||
;;
|
||||
e*)
|
||||
eval $EDIT $TEMP
|
||||
continue 2
|
||||
;;
|
||||
s*)
|
||||
break 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
done
|
||||
|
||||
#
|
||||
# Make sure the mail has got a Subject. If not, use the same as
|
||||
# in Synopsis.
|
||||
#
|
||||
|
||||
if grep '^Subject:[ ]*$' $TEMP > /dev/null
|
||||
then
|
||||
SYNOPSIS=`grep '^>Synopsis:' $TEMP | sed -e 's/^>Synopsis:[ ]*//'`
|
||||
ed -s $TEMP << __EOF__
|
||||
/^Subject:/s/:.*\$/: $SYNOPSIS/
|
||||
w
|
||||
q
|
||||
__EOF__
|
||||
fi
|
||||
|
||||
#
|
||||
# Remove comments and send the problem report
|
||||
# (we have to use patterns, where the comment contains regex chars)
|
||||
#
|
||||
# /^>Originator:/s;$ORIGINATOR;;
|
||||
sed -e "
|
||||
/^SEND-PR:/d
|
||||
/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;;
|
||||
/^>Confidential:/s;<.*>;;
|
||||
/^>Synopsis:/s;$SYNOPSIS_C;;
|
||||
/^>Severity:/s;<.*>;;
|
||||
/^>Priority:/s;<.*>;;
|
||||
/^>Category:/s;$CATEGORY_C;;
|
||||
/^>Class:/s;<.*>;;
|
||||
/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;;
|
||||
/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;;
|
||||
/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;;
|
||||
/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;;
|
||||
/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;;
|
||||
" $TEMP > $REF
|
||||
|
||||
if $MAIL_AGENT < $REF; then
|
||||
echo "$COMMAND: problem report sent"
|
||||
xs=0; exit
|
||||
else
|
||||
echo "$COMMAND: mysterious mail failure."
|
||||
if [ -z "$BATCH" ]; then
|
||||
echo "$COMMAND: the problem report remains in $BAD and is not sent."
|
||||
REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF"
|
||||
mv $REF $BAD
|
||||
else
|
||||
echo "$COMMAND: the problem report is not sent."
|
||||
fi
|
||||
xs=1; exit
|
||||
fi
|
||||
BIN
TBE/MinGW/bin/gcov.exe
Normal file
BIN
TBE/MinGW/bin/gcov.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/gdb.exe
Normal file
BIN
TBE/MinGW/bin/gdb.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/gprof.exe
Normal file
BIN
TBE/MinGW/bin/gprof.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/ld.exe
Normal file
BIN
TBE/MinGW/bin/ld.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/mingw32-c++.exe
Normal file
BIN
TBE/MinGW/bin/mingw32-c++.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/mingw32-g++.exe
Normal file
BIN
TBE/MinGW/bin/mingw32-g++.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/mingw32-gcc.exe
Normal file
BIN
TBE/MinGW/bin/mingw32-gcc.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/mingw32-make.exe
Normal file
BIN
TBE/MinGW/bin/mingw32-make.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/mingwm10.dll
Normal file
BIN
TBE/MinGW/bin/mingwm10.dll
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/nm.exe
Normal file
BIN
TBE/MinGW/bin/nm.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/objcopy.exe
Normal file
BIN
TBE/MinGW/bin/objcopy.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/objdump.exe
Normal file
BIN
TBE/MinGW/bin/objdump.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/pexports.exe
Normal file
BIN
TBE/MinGW/bin/pexports.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/protoize.exe
Normal file
BIN
TBE/MinGW/bin/protoize.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/ranlib.exe
Normal file
BIN
TBE/MinGW/bin/ranlib.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/readelf.exe
Normal file
BIN
TBE/MinGW/bin/readelf.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/redir.exe
Normal file
BIN
TBE/MinGW/bin/redir.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/reimp.exe
Normal file
BIN
TBE/MinGW/bin/reimp.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/res2coff.exe
Normal file
BIN
TBE/MinGW/bin/res2coff.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/size.exe
Normal file
BIN
TBE/MinGW/bin/size.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/strings.exe
Normal file
BIN
TBE/MinGW/bin/strings.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/strip.exe
Normal file
BIN
TBE/MinGW/bin/strip.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/unix2dos.exe
Normal file
BIN
TBE/MinGW/bin/unix2dos.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/unprotoize.exe
Normal file
BIN
TBE/MinGW/bin/unprotoize.exe
Normal file
Binary file not shown.
BIN
TBE/MinGW/bin/windres.exe
Normal file
BIN
TBE/MinGW/bin/windres.exe
Normal file
Binary file not shown.
340
TBE/MinGW/doc/MinGW/COPYING
Normal file
340
TBE/MinGW/doc/MinGW/COPYING
Normal file
@@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
482
TBE/MinGW/doc/MinGW/COPYING.LIB
Normal file
482
TBE/MinGW/doc/MinGW/COPYING.LIB
Normal file
@@ -0,0 +1,482 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
MA 02111-1307, USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
BIN
TBE/MinGW/doc/MinGW/MinGW_LICENSE.rtf
Normal file
BIN
TBE/MinGW/doc/MinGW/MinGW_LICENSE.rtf
Normal file
Binary file not shown.
BIN
TBE/MinGW/doc/MinGW/MinGW_PACKAGES.rtf
Normal file
BIN
TBE/MinGW/doc/MinGW/MinGW_PACKAGES.rtf
Normal file
Binary file not shown.
BIN
TBE/MinGW/doc/MinGW/MinGW_WELCOME.rtf
Normal file
BIN
TBE/MinGW/doc/MinGW/MinGW_WELCOME.rtf
Normal file
Binary file not shown.
4
TBE/MinGW/doc/MinGW/README.LIBIBERTY
Normal file
4
TBE/MinGW/doc/MinGW/README.LIBIBERTY
Normal file
@@ -0,0 +1,4 @@
|
||||
The library libiberty.a and its associated header falls under the GNU
|
||||
General Public License. Please read the file COPYING if you intend to
|
||||
distribute applications linking against this library. It is your
|
||||
responsibility to understand and comply with the conditions of the GPL
|
||||
231
TBE/MinGW/doc/a2dll/a2dll.html
Normal file
231
TBE/MinGW/doc/a2dll/a2dll.html
Normal file
@@ -0,0 +1,231 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
a2dll: An utility (to help) to convert static library into Win32 DLL
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>
|
||||
a2dll: An utility (to help) to convert static library into Win32 DLL
|
||||
</h1>
|
||||
<h2>
|
||||
Synopsis
|
||||
</h2>
|
||||
<p>
|
||||
a2dll is shell script (see <a href="#requirements">requirements</a>) to
|
||||
automotize process of converting existing static libraries (produced
|
||||
by gnu-win32 tools, of course) into DLL. First of all, yes it's possible:
|
||||
if you have binary static distribution of some library (i.e. library
|
||||
itself and its headers), that's all you need to convert it to DLL and
|
||||
use in your programs. Read <a href="static2dll_howto.txt">HOWTO</a> for
|
||||
underlying magic. So, you may not waste time if you need DLL: just
|
||||
grab existing static distribution and convert. Also, you may use it to
|
||||
build Win32 DLL of your library. Also, until GNU libtool will allow
|
||||
seamless building of Win32 DLLs, you may build static lib (what
|
||||
libtool of course supports) and then convert it to DLL.
|
||||
<blockquote>
|
||||
<tt>
|
||||
a2dll <static_lib> [-o <dll_name>] [<linker_flags>] [--relink]
|
||||
</tt>
|
||||
</blockquote>
|
||||
where:
|
||||
<dl>
|
||||
<dt>
|
||||
<tt><static_lib></tt>
|
||||
</dt>
|
||||
<dd>
|
||||
Static library you want to convert
|
||||
</dd>
|
||||
<dt>
|
||||
<tt>-o <dll_name></tt>
|
||||
</dt>
|
||||
<dd>
|
||||
Name of resulting dll. If not given, three first chars of input
|
||||
name are stripped and <tt>.a</tt> suffix replaced with <tt>.dll</tt> .
|
||||
So, from '<tt>libfoo.a</tt>' you'll get '<tt>foo.dll</tt>'.
|
||||
</dd>
|
||||
<dt>
|
||||
<tt><linker_flags></tt>
|
||||
</dt>
|
||||
<dd>
|
||||
Linker flags:
|
||||
<ul>
|
||||
<li>Use '<tt>-s</tt>' to get library without debugging symbols and information.
|
||||
<li>Use '<tt>--driver-name=<name></tt>' to link library with specified
|
||||
linker (well, compiler, to be precise). For example, for C++ library use
|
||||
<tt>--driver-name=g++</tt> .
|
||||
<li>You should list all libraries on which your library depends with
|
||||
<tt>-l</tt> switches and directories they are reside in with <tt>-L</tt>
|
||||
switches. For example, if your library uses PCRE library you just built and
|
||||
not yet installed, use something like <tt>-L../pcre -lpcre</tt>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>
|
||||
<tt>--relink</tt>
|
||||
</dt>
|
||||
<dd>
|
||||
Skip exploding library stage (see below). Use this flag to continue
|
||||
process after some error occured.
|
||||
</dd>
|
||||
</dl>
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Performing
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
a2dll works in following way:
|
||||
<ol>
|
||||
<li>If you did not specify <tt>--relink</tt> option,
|
||||
explodes source library under newly-created <tt>.dll</tt> subdirectory.
|
||||
|
||||
<li>Links all resulting objects into DLL with exporting all non-static
|
||||
symbols. On this stage, link errors
|
||||
(such as underfined symbols) may occur. In such case, a2dll terminates
|
||||
and all linker messages are available in '<tt>ld.err</tt>' file. You
|
||||
should correct errors (mostly by finding out additional
|
||||
dependecies, but sometimes by deleting 'superfluos' objects under .dll)
|
||||
and re-run a2dll with all the options you gave it before,
|
||||
plus new dependencies, plus <tt>--relink</tt> flag. You may need to
|
||||
repeat this several times.
|
||||
|
||||
<li>Renames original static library with suffix <tt>.static</tt> .
|
||||
|
||||
<li>Creates import library for produced DLL with the name of original
|
||||
static library.
|
||||
|
||||
<li>Check whether DLL exports data symbols. If no, congratulations,
|
||||
you've done. However, if some present, it lists all of them in file
|
||||
'<tt><dll_name>.data</tt>' . Presense of such symbols generally
|
||||
means that you should patch library's headers to mark those symbols
|
||||
as dll-imported. But don't hurry with that, first, do following:
|
||||
<ol>
|
||||
<li>Look into <tt><dll_name>.data</tt> file. If all what you see
|
||||
is something like '<tt>internal_counter_of_bogons</tt>' or
|
||||
'<tt>_ksdauso</tt>', don't worry - those symbols are hardly part of
|
||||
external interface of the library.
|
||||
<li>If all you need is to link your application against that
|
||||
library, try it. If it succeeds, congratulation.
|
||||
<li>Only if above is failed, or you are going to distribute produced
|
||||
library, so you need to be sure that everything is ok, proceed with
|
||||
marking symbols in headers. Read <a href="static2dll_howto.txt">Static2DLL
|
||||
HOWTO</a> for more information on suggested ways of doing this. Use
|
||||
'<tt>grep -f <tt><dll_name>.data</tt> *.h</tt>' command to find
|
||||
out where offending symbols defined in library headers.
|
||||
</ol>
|
||||
</ol>
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Examples
|
||||
</h2>
|
||||
<p>
|
||||
Since converting static libraries to DLLs is not fully automated and
|
||||
formal process, some experience with it is required. Learing
|
||||
by example is known to be one of the efficient way of communicating
|
||||
experince, so I would like to provide some realistic examples of
|
||||
converting statics to DLLs with the help of a2dll.
|
||||
</p>
|
||||
|
||||
<h3>
|
||||
Zlib
|
||||
</h3>
|
||||
<p>
|
||||
Build libz.a . Now, run '<tt>a2dll libz.a</tt>'. It builds cleanly,
|
||||
but warns us about data symbols. Let's look at them:
|
||||
<blockquote>
|
||||
<pre>
|
||||
inflate_mask
|
||||
z_errmsg
|
||||
</pre>
|
||||
</blockquote>
|
||||
What they could be. The first one is probably some internal variable,
|
||||
while second is probably array of error messages. As we know, zlib
|
||||
provides functional way of getting error messages, something like. So
|
||||
our hypothesis is that job's done. Let's prove it:
|
||||
'<tt>grep -f z.dll.data zlib.h</tt>'. Yes, we're right: no mentioning
|
||||
of those symbols in interface header file.
|
||||
</p>
|
||||
|
||||
<h3>
|
||||
libstdc++
|
||||
</h3>
|
||||
<p>
|
||||
I've got an idea to DLLize libstdc++ coming with my mingw32 distribution.
|
||||
'<tt>a2dll "libstdc++.a"</tt>'. Note that we don't use
|
||||
<tt>--driver-name=g++</tt> - that option need to be used when we link
|
||||
something <i>against</i> libstdc++ . But when we link libstdc++
|
||||
<i>itself</i>, we need libc (whatever it is in mingw32), nothing else.
|
||||
But, process aborts due to linker errors. <tt>ld.err</tt> tells us:
|
||||
<blockquote>
|
||||
<pre>
|
||||
strerror.o(.text+0x303): undefined reference to `sys_nerr'
|
||||
vfork.o(.text+0x7): undefined reference to `fork'
|
||||
waitpid.o(.text+0x15): undefined reference to `wait'
|
||||
</pre>
|
||||
</blockquote>
|
||||
Well, strerror, vfork, waitpid are libc functions, what they do in
|
||||
libstdc++? Probably, stubs, delete them and
|
||||
'<tt>a2dll "libstdc++.a" --relink</tt>'. Of course,
|
||||
<tt>stdc++.dll.data</tt> is here. Looking into it, I may tell you
|
||||
that everything starting with '<tt>__ti<digit></tt>' is RTTI
|
||||
internal data structures and everything starting with
|
||||
'<tt>_vt$</tt>' is virtual tables (use c++filt if in doubt),
|
||||
you can leave them alone.
|
||||
(If so, why I don't filter them? Because "you can leave them alone"
|
||||
is hypothesis for now, I haven't linked too much C++ libraries to
|
||||
be sure). From the rest, there's stuff starting
|
||||
with '<tt>_IO_</tt>'. That's probably some internal variables, let's
|
||||
don't do anything about them, unless we'll be forced to. Than, as
|
||||
c++filt shows, there're some static members of templated classes. Darkness.
|
||||
Forget for now. Than, there's '<tt>io_defs__</tt>'. Does your C++ application
|
||||
reference something like that? Mine not. So, what is left? Our four
|
||||
happy friends, <tt>cin, cout, cerr,</tt> and <tt>clog</tt>. Do mark them as
|
||||
__declspec(dllimport) in <tt>iostream.h</tt>.
|
||||
</p>
|
||||
|
||||
<h3>
|
||||
Some C++ library
|
||||
</h3>
|
||||
<p>
|
||||
Suppose we have following file:
|
||||
<pre>
|
||||
#include <iostream.h>
|
||||
|
||||
void foo()
|
||||
{
|
||||
cout<<"hi!"<<endl;
|
||||
}
|
||||
</pre>
|
||||
and want to turn it into DLL. Create static liba.a from it. Now,
|
||||
'<tt>a2dll liba.a --driver-name=g++</tt>'. Well, our DLL contains
|
||||
single function, why then it complains about data symbols? Oh, it's
|
||||
those stupid RTTI structures. Next time, compile with <tt>-fno-rtti</tt> unless
|
||||
you really need it, ok? Ditto for <tt>-fno-exceptions</tt> .
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
<a name="requirements">
|
||||
Requirements
|
||||
</h2>
|
||||
<p>
|
||||
a2dll requires POSIX shell (<tt>sh</tt>) to run. It is developed and
|
||||
tested with <tt>ash</tt> from
|
||||
<a href="http://pw32.sourceforge.net">PW32</a> distribution. Additionally,
|
||||
a2dll requires following utilities to perform its tasks:
|
||||
<ul>
|
||||
<li>GNU fileutils: mkdir, mv, rm
|
||||
<li>GNU textutils: wc
|
||||
<li>GNU grep
|
||||
<li>GNU awk
|
||||
<li>GNU binutils: dllwrap, dlltool (and the rest of binutils and gcc, of course)
|
||||
<li>pexports, an utility to dump symbols exported by dll. You'll need a
|
||||
version 0.43 or above, capable of distinguishing between code and data symbols, as one
|
||||
from <a href="http://www.is.lg.ua/~paul/devel/binutils.html">here</a>.
|
||||
</ul>
|
||||
</p>
|
||||
<hr noshade>
|
||||
<i><a href="mailto:Paul.Sokolovsky@technologist.com">Paul Sokolovsky</a></i>
|
||||
</body>
|
||||
</html>
|
||||
141
TBE/MinGW/doc/a2dll/static2dll_howto.txt
Normal file
141
TBE/MinGW/doc/a2dll/static2dll_howto.txt
Normal file
@@ -0,0 +1,141 @@
|
||||
How to build Win32 Dynamic-Loading Library (DLL) from existing static library
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
-------
|
||||
NOTE: To perform steps below, you'll need contemparary dlltool, for
|
||||
example from Mumit Khan's gcc-2.95.2 packages.
|
||||
-------
|
||||
|
||||
|
||||
This document describes step-by-step procedure of building Win32 DLL from
|
||||
static library. It suitable for both your own and third-party (i.e. ones
|
||||
which you know, and would like to, little about) libs. However, for your
|
||||
own libraries you may adopt more handy and adequate method (exporting all
|
||||
symbols, as done here, may be not the best solution). However, procedure
|
||||
given here describes easiest and fastest way if what you want is just
|
||||
create proper DLL and forget about it. This documets assumes that
|
||||
you have, or will, read documentation for Mumit Khan's dllwrappers
|
||||
tools (dllwrap & dlltool utilities).
|
||||
|
||||
Before proceeding with description of process, some notes about
|
||||
distinction of DLLs and usual *nix-style shared libraries (.so, referred
|
||||
as SO below) (read also if you don't have experience with .so):
|
||||
|
||||
[Once again note that there's a big gap between abstract information
|
||||
below and specific practical steps which follow; if you want to fill
|
||||
that gap, read standard documentation.]
|
||||
|
||||
|
||||
Theory
|
||||
------
|
||||
|
||||
1. Usually, compilation of objects for shared libraries requires different
|
||||
set of compiler options comparing to static counterparts. For example,
|
||||
many systems require -fpic flag to generate position-independent code.
|
||||
However, for Win32, both static libs and DLLs are created from the same
|
||||
set of objects. Despite this little advantage, DLLs have following big
|
||||
disadvantage:
|
||||
|
||||
2. Once have been created, shared libraries require no additional fuzz
|
||||
for usage. When so-using executable is loaded, every reference to
|
||||
so-symbol gets fixed up to point directly to SO. Win32 has different
|
||||
system: every executable importing DLL has special section, .idata, to hold
|
||||
pointers to imported symbols. During loading, OS loader fills this section
|
||||
with actual info. And application is supposed, when needed DLL-symbol, first
|
||||
lookup its pointer in .idata, and only then have access by that pointer,
|
||||
As you see, for DLL-imported symbols, additional level of indirection is
|
||||
required. This stems probably from dark times of real-mode 16-bit Windows,
|
||||
working on 8086 processor lacking virtual memory. Having all import-related
|
||||
stuff in one single place facilated runtime relocation, which was needed
|
||||
to effictively manage memory there. So or other, but it is that way.
|
||||
So, as you see, special compiler support required to compile client of
|
||||
DLL (note strange symmetry - *nix require special support to compile library,
|
||||
while Win32 - to compile client. Former is better, I agree).
|
||||
|
||||
3. As was said before, with SO you use library just as you would static
|
||||
version. This is not so for Win32. Win32 DLL is self-contained executable,
|
||||
not supposed to be linked against. Instead, client is linked with special
|
||||
auxilary library, called 'import library' or 'implib'. Implib contains
|
||||
information to properly layout .idata section to be filled in by OS loader
|
||||
with information about DLL.
|
||||
|
||||
|
||||
Building DLL from existing static library
|
||||
-----------------------------------------
|
||||
|
||||
We assume that you already build static lib, which we will call 'libfoo.a'.
|
||||
However, building yourself is not requirement, to perform these instructions,
|
||||
you don't needed sources of library - only library itself and its headers.
|
||||
|
||||
1. Fisrt step would be to create export definition file (or just def). You
|
||||
can do this directly from library:
|
||||
|
||||
dlltool libfoo.a --export-all-symbols --output-def foo.def
|
||||
|
||||
2. Now, we can create DLL itself. This may be done by two ways: 1) link
|
||||
dummy file referencing each symbol in libfoo.a (created by script acting on
|
||||
output from 'nm libfoo.a') against libfoo.a (so, each foo's object for
|
||||
sure will be in foo.dll) or 2) exploding library and linking all its objects
|
||||
together. I consider second way cleaner and show it:
|
||||
|
||||
mkdir tmp
|
||||
cp libfoo.a tmp/
|
||||
cd tmp
|
||||
ar x libfoo.a
|
||||
dllwrap *.o --def ../foo.def -o ../foo.dll [usual -l libraries here]
|
||||
cd ..
|
||||
|
||||
3. Let's create implib. If you want totally transparent transition from
|
||||
static to DLL, call it 'libfoo.a'. However, if you want to keep destinction,
|
||||
'libfoo.dll.a' is good:
|
||||
|
||||
dlltool --def foo.def --ouput-lib libfoo.dll.a
|
||||
|
||||
4. Now grep foo.def for entries containing 'DATA'. If there's none -
|
||||
congratulations, your library uses functional-only interface and you've done.
|
||||
Else, most unpleasant work left - patch headers to include dllimport tag.
|
||||
|
||||
If you want to do it once-and-for-all (you should), do following:
|
||||
|
||||
a) make something like 'dl_import.h' and put there:
|
||||
-----
|
||||
#if !defined(STATIC) && defined(_WIN32)
|
||||
#define _DL_IMPORT __delcspec(dllimport)
|
||||
#else
|
||||
#define _DL_IMPORT
|
||||
#endif
|
||||
-----
|
||||
, if you want to use DLL by default (note that you will need to compile
|
||||
library itself with STATIC defined), or
|
||||
-----
|
||||
#if defined(DLL) && defined(_WIN32)
|
||||
#define _DL_IMPORT __delcspec(dllimport)
|
||||
#else
|
||||
#define _DL_IMPORT
|
||||
#endif
|
||||
-----
|
||||
, if you want to include -DDLL each time you compile DLL client.
|
||||
|
||||
b) for each def symbol having DATA attribute, find header where its declared
|
||||
as extern. If that header doesn't have '#include "dl_import.h"' at the top,
|
||||
add it. Put '_DL_IMPORT' in front of 'extern' (strictly speaking, position
|
||||
matters and proper place is after both extern and type, but for data
|
||||
declaration above works also (at least for me)). For example, if it was
|
||||
|
||||
extern void *(*my_malloc)(int sz);
|
||||
|
||||
becoming
|
||||
|
||||
_DL_IMPORT extern void *(*my_malloc)(int sz);
|
||||
|
||||
will suffice. Procedd with next symbol.
|
||||
|
||||
However, if you're lazy for that, you may stretch the pleasure and mark
|
||||
symbol as _DL_IMPORT only whenever you encounter it in undefined symbol
|
||||
error during linking of client.
|
||||
|
||||
5. That's all! Now, just compile client either as usually or with -DDLL,
|
||||
and link either as usually or with -lfoo.dll .
|
||||
|
||||
Paul.Sokolovsky@technologist.com
|
||||
1999-08-28
|
||||
29
TBE/MinGW/doc/dos2unix/COPYING
Normal file
29
TBE/MinGW/doc/dos2unix/COPYING
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
* Copyright (c) 1994, 1995 Benjamin Lin.
|
||||
* Copyright (c) 1998, Bernd Johannes Wuebben
|
||||
* Copyright (c) 1998, Christian Wurll
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is free and not encumbered by a restrictive licence such
|
||||
* as the GPL in the following sense:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice in the documentation and/or other materials provided with
|
||||
* the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
245
TBE/MinGW/doc/dos2unix/dos2unix.html
Normal file
245
TBE/MinGW/doc/dos2unix/dos2unix.html
Normal file
@@ -0,0 +1,245 @@
|
||||
Content-type: text/html
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of dos2unix</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>dos2unix</H1>
|
||||
Section: User Commands (1)<BR>Updated: dos2unix v3.0<BR><A HREF="#index">Index</A>
|
||||
<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
||||
|
||||
<P>
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<P>
|
||||
dos2unix - DOS/MAC to UNIX text file format converter
|
||||
<P>
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSYS</H2>
|
||||
|
||||
<P>
|
||||
dos2unix [options] [-c convmode] [-o file ...] [-n infile outfile ...]
|
||||
<P>
|
||||
|
||||
Options:
|
||||
<P>
|
||||
|
||||
[-hkqV] [--help] [--keepdate] [--quiet] [--version]
|
||||
<P>
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<P>
|
||||
<P>
|
||||
|
||||
This manual page documents dos2unix, the program that converts plain text
|
||||
files in DOS/MAC format to UNIX format.
|
||||
<P>
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<P>
|
||||
The following options are available:
|
||||
<DL COMPACT>
|
||||
<DT><B>-h --help</B>
|
||||
|
||||
<DD>
|
||||
Print online help.
|
||||
<P>
|
||||
<DT><B>-k --keepdate</B>
|
||||
|
||||
<DD>
|
||||
Keep the date stamp of output file same as input file.
|
||||
<P>
|
||||
<DT><B>-q --quiet</B>
|
||||
|
||||
<DD>
|
||||
Quiet mode. Suppress all warning and messages.
|
||||
<P>
|
||||
<DT><B>-V --version</B>
|
||||
|
||||
<DD>
|
||||
Prints version information.
|
||||
<P>
|
||||
<DT><B>-c --convmode convmode</B>
|
||||
|
||||
<DD>
|
||||
Sets conversion mode. Simulates dos2unix under SunOS.
|
||||
<P>
|
||||
<DT><B>-o --oldfile file ...</B>
|
||||
|
||||
<DD>
|
||||
Old file mode. Convert the file and write output to it. The program
|
||||
default to run in this mode. Wildcard names may be used.
|
||||
<P>
|
||||
<DT><B>-n --newfile infile outfile ...</B>
|
||||
|
||||
<DD>
|
||||
New file mode. Convert the infile and write output to outfile. File names
|
||||
must be given in pairs and wildcard names should NOT be used or you WILL
|
||||
lost your files.
|
||||
<P>
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>EXAMPLES</H2>
|
||||
|
||||
<P>
|
||||
<P>
|
||||
|
||||
Get input from stdin and write output to stdout.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>dos2unix</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert and replace a.txt. Convert and replace b.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>dos2unix a.txt b.txt</B>
|
||||
|
||||
<DT><DD>
|
||||
<B>dos2unix -o a.txt b.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert and replace a.txt in ASCII conversion mode.
|
||||
Convert and replace b.txt in ISO conversion mode.
|
||||
Convert c.txt from Mac to Unix ascii format.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>dos2unix a.txt -c iso b.txt</B>
|
||||
|
||||
<DT><DD>
|
||||
<B>dos2unix -c ascii a.txt -c iso b.txt</B>
|
||||
|
||||
<DT><DD>
|
||||
<B>dos2unix -c mac a.txt b.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert and replace a.txt while keeping original date stamp.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>dos2unix -k a.txt</B>
|
||||
|
||||
<DT><DD>
|
||||
<B>dos2unix -k -o a.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert a.txt and write to e.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>dos2unix -n a.txt e.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert a.txt and write to e.txt, keep date stamp of e.txt same as a.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>dos2unix -k -n a.txt e.txt </B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert and replace a.txt. Convert b.txt and write to e.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>dos2unix a.txt -n b.txt e.txt</B>
|
||||
|
||||
<DT><DD>
|
||||
<B>dos2unix -o a.txt -n b.txt e.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert c.txt and write to e.txt. Convert and replace a.txt.
|
||||
Convert and replace b.txt. Convert d.txt and write to f.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>DIAGNOSTICS</H2>
|
||||
|
||||
<P>
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
<P>
|
||||
The program does not work properly under MSDOS in stdio processing mode.
|
||||
If you know why is that so, please tell me.
|
||||
<P>
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>AUTHORS</H2>
|
||||
|
||||
<P>
|
||||
Benjamin Lin -
|
||||
<B><<A HREF="mailto:blin@socs.uts.edu.au">blin@socs.uts.edu.au</A>></B>
|
||||
|
||||
<P>
|
||||
<P>
|
||||
Bernd Johannes Wuebben (mac2unix mode)
|
||||
<B><<A HREF="mailto:wuebben@kde.org">wuebben@kde.org</A>></B>
|
||||
|
||||
<P>
|
||||
<P>
|
||||
<A NAME="lbAJ"> </A>
|
||||
<H2>MISCELLANY</H2>
|
||||
|
||||
<P>
|
||||
Tested environment:
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
Linux 1.2.0 with GNU C 2.5.8
|
||||
<DT><DD>
|
||||
SunOS 4.1.3 with GNU C 2.6.3
|
||||
<DT><DD>
|
||||
MS-DOS 6.20 with Borland C++ 4.02
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Suggestions and bug reports are welcome.
|
||||
<P>
|
||||
<A NAME="lbAK"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="http://localhost/cgi-bin/man/man2html?1+unix2dos">unix2dos</A>(1) <A HREF="http://localhost/cgi-bin/man/man2html?1+mac2unix">mac2unix</A>(1)
|
||||
<P>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSYS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">EXAMPLES</A><DD>
|
||||
<DT><A HREF="#lbAG">DIAGNOSTICS</A><DD>
|
||||
<DT><A HREF="#lbAH">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAI">AUTHORS</A><DD>
|
||||
<DT><A HREF="#lbAJ">MISCELLANY</A><DD>
|
||||
<DT><A HREF="#lbAK">SEE ALSO</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
|
||||
using the manual pages.<BR>
|
||||
Time: 11:51:18 GMT, December 04, 2002
|
||||
</BODY>
|
||||
</HTML>
|
||||
340
TBE/MinGW/doc/drmingw/COPYING
Normal file
340
TBE/MinGW/doc/drmingw/COPYING
Normal file
@@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
482
TBE/MinGW/doc/drmingw/COPYING.LIB
Normal file
482
TBE/MinGW/doc/drmingw/COPYING.LIB
Normal file
@@ -0,0 +1,482 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
MA 02111-1307, USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
417
TBE/MinGW/doc/drmingw/drmingw.html
Normal file
417
TBE/MinGW/doc/drmingw/drmingw.html
Normal file
@@ -0,0 +1,417 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Dr. Mingw</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Dr. Mingw is a <i>Just-in-Time (JIT)</i> debugger. When the application throws
|
||||
an unhandled exception, Dr. Mingw attaches itself to the application and collects
|
||||
information about the exception, using the available debugging information.</p>
|
||||
|
||||
<h1>Features</h1>
|
||||
|
||||
<p>Dr. Mingw can read debugging information in <em>Stabs</em> formats — generated
|
||||
by the Gnu C/C++ Compiler, and in a PDB file — generated by the Microsoft
|
||||
Visual C++ Compiler.</p>
|
||||
|
||||
<p>Windows NT/2000 platform is supported, as well as Windows 95/98. On older Windows
|
||||
versions though, the IMAGEHLP.DLL isn't included or it's a rather old version.
|
||||
Dr. Mingw doesn't require it, but relies upon it to resolve symbols in modules
|
||||
compiled by the Microsoft tools. See <a href="#imagehlp">The
|
||||
IMAGEHLP.DLL Saga</a> for more information. </p>
|
||||
|
||||
<h1>Download</h1>
|
||||
|
||||
<p>Dr. Mingw is now part of <a
|
||||
href="http://sourceforge.net/project/showfiles.php?group_id=2435&release_id=115457">mingw-utils</a>.</p>
|
||||
|
||||
<h1>Installation</h1>
|
||||
|
||||
<p>If you didn't download the self-installing package, to install enter</p>
|
||||
|
||||
<blockquote>
|
||||
<pre><b>drmingw -i</b></pre>
|
||||
</blockquote>
|
||||
|
||||
<p>Dr. Mingw will register itself as the JIT debugger by writting into the
|
||||
system registry. On Windows NT/2000 make sure you have Administrator
|
||||
rights. See <a href="#jit">Enabling Just-in-Time (JIT) Debugging</a> for
|
||||
more information.</p>
|
||||
|
||||
<p>If the installation is sucessful, the following message box should appear:</p>
|
||||
|
||||
<p align="center"><img src="install.gif" alt="installation dialog"/></p>
|
||||
|
||||
<p>To enable other options they must be set them allong with the <b>-i</b>
|
||||
option. For example,</p>
|
||||
|
||||
<blockquote>
|
||||
<pre><b>drmingw -i -v </b></pre>
|
||||
</blockquote>
|
||||
|
||||
<p>If you still have trouble installing, edit the included<b>
|
||||
drmingw.reg</b> file to reflect the <b>drmingw.exe</b> executable path and
|
||||
load it on the system registry.</p>
|
||||
|
||||
<h1>Usage</h1>
|
||||
|
||||
<p>You can test Dr. Mingw by running the sample<b> test.exe</b>. Depending
|
||||
of your Windows version, you'll see a familiar dialog:</p>
|
||||
|
||||
<p align="center"><img src="exception-nt.gif" alt="Windows general protection fault dialog"/></p>
|
||||
|
||||
<p>If you request to debug the program, Dr. Mingw will attach to the
|
||||
faulting application, collect information about the exception, and display
|
||||
the dialog</p>
|
||||
|
||||
<p align="center"><img src="sample.gif" alt="sample report"/></p>
|
||||
|
||||
<p>To resolve the addresses it's necessary to compile the application with
|
||||
debugging information. In case of address is in a DLL with no debugging
|
||||
information, it will resolve to the precedent exported symbol.</p>
|
||||
|
||||
<h1>Command Line Options</h1>
|
||||
|
||||
<p>The Dr. Mingw command line uses the following syntax:</p>
|
||||
|
||||
<pre>
|
||||
<b>drmingw </b>[<b>-h | --help</b>] [<b>-V | --version</b>] [<b>-i | --install</b>] [<b>-a | --auto</b>] [<b>-u | --uninstall</b>]
|
||||
[<b>-p</b> <i>pid</i> | <b>--process-id=</b><i>pid</i>] [<b>-e</b> <i>event</i> | <b>--event=</b><i>event</i>]
|
||||
[<b>-v | --verbose</b>]
|
||||
</pre>
|
||||
|
||||
<p>The following table describes the Dr. Mingw command-line options. All
|
||||
comand-line options are case-sensitive. </p>
|
||||
|
||||
<table width="78%" summary="command-line options">
|
||||
<tr>
|
||||
<th align=left width=10%>Option</th>
|
||||
<th align=left width=25%> </th>
|
||||
<th align=left width=65%>Action</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=10%>
|
||||
<pre><b>-h</b></pre>
|
||||
</td>
|
||||
<td width=25%>
|
||||
<pre><b>--help</b></pre>
|
||||
</td>
|
||||
<td width=65%>Print help and exit </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=10%>
|
||||
<pre><b>-V</b></pre>
|
||||
</td>
|
||||
<td width=25%>
|
||||
<pre><b>--version</b></pre>
|
||||
</td>
|
||||
<td width=65%>Print version and exit</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=10%>
|
||||
<pre><b>-i</b></pre>
|
||||
</td>
|
||||
<td width=25%>
|
||||
<pre><b>--install</b></pre>
|
||||
</td>
|
||||
<td width=65%>Install as the default JIT debugger</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=10%>
|
||||
<pre><b>-a</b></pre>
|
||||
</td>
|
||||
<td width=25%>
|
||||
<pre><b>--auto</b></pre>
|
||||
</td>
|
||||
<td width=65%>Automatically start (used with <b>-i</b> | <b>--install</b>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=10%>
|
||||
<pre><b>-u</b></pre>
|
||||
</td>
|
||||
<td width=25%>
|
||||
<pre><b>--uninstall</b></pre>
|
||||
</td>
|
||||
<td width=65%>Uninstall</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=10%>
|
||||
<pre><b>-p</b> <i>pid</i></pre>
|
||||
</td>
|
||||
<td width=25%>
|
||||
<pre><b>--process-id=</b><i>pid</i></pre>
|
||||
</td>
|
||||
<td width=65%>Attach to the process with the given identifier</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=10%>
|
||||
<pre><b>-e</b> <i>event</i></pre>
|
||||
</td>
|
||||
<td width=25%><pre><b>--event=</b><i>event</i></pre></td>
|
||||
<td width=65%>Signal an event after process is attached</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=10%>
|
||||
<pre><b>-v</b></pre>
|
||||
</td>
|
||||
<td width=25%>
|
||||
<pre><b>--verbose</b></pre>
|
||||
</td>
|
||||
<td width=65%>Verbose output</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1><a name="exchndl"></a>The EXCHNDL.DLL</h1>
|
||||
|
||||
<h2>Introduction</h2>
|
||||
|
||||
<p>Although internally Dr. Mingw behaves much like a debugger, from the
|
||||
outside it is like a standalone exception handler. But for its own
|
||||
debugging purposes, Dr. Mingw has a internal exception handler that is
|
||||
completly seperate from the main code.</p>
|
||||
|
||||
<p>This exception handler resides in <b>exchndl.c</b>. When
|
||||
<b>drmingw.exe</b> is loaded, the code in <b>exchndl.c</b> is automatically
|
||||
executed (by the gcc static constructor/destructor mechanism) and registers
|
||||
itself as a exception handler.</p>
|
||||
|
||||
<p>This exception handler is much lighter than Dr. Mingw debugging system
|
||||
because it doesn't have to deal with interprocess communication. The
|
||||
exception handling routine runs in the same process context of the faulting
|
||||
application (<b>drmingw</b>, in this case).</p>
|
||||
|
||||
<h2>Using ExcHndl for you own purposes</h2>
|
||||
|
||||
<p>If you incorporate ExcHndl in you own programs, especially those that
|
||||
you release to others, you can have almost the same exception information
|
||||
that you would get with Dr. Mingw, but with no need of the end user to have
|
||||
Dr. Mingw installed.</p>
|
||||
|
||||
<p>You can use ExcHndl in two ways:</p>
|
||||
|
||||
<ul>
|
||||
<li>linking <b>exchndl.o</b> and <b>libbfd.a</b> with your program objects</li>
|
||||
|
||||
<li>linking <b>exchndl.o</b> and <b>libfd.a</b> in the
|
||||
<b>EXCHNDL.DLL</b> and dinamically loading it at run-time. This can be
|
||||
done by linking just <b>exchndl2.o</b> or explicitly calling
|
||||
<i>LoadLibrary("exchndl.dll")</i></li>
|
||||
</ul>
|
||||
|
||||
<p>The latter method is preferred because you have smaller executables and
|
||||
don't need to link the BFD library in all builds. The application wont fail
|
||||
if the <b>EXCHNDL.DLL</b> is missing.</p>
|
||||
|
||||
<h2>Example</h2>
|
||||
|
||||
<p>The sample<b> test.exe</b> application uses the second method above.
|
||||
Copy <b>EXCHNDL.DLL</b> to executable directory. When you run it, even
|
||||
before general protection fault dialog box appears, it's written to the
|
||||
<b>test.RPT</b> file a report of the fault.</p>
|
||||
|
||||
<p>Here is how <b>test.RPT</b> should look like:</p>
|
||||
|
||||
<pre>
|
||||
-------------------
|
||||
|
||||
Error occured on Sunday, May 7, 2000 at 20:22:03.
|
||||
|
||||
C:\home\jrfonseca\drmingw\src\test.exe caused an Access Violation in module C:\WINDOWS\system32\msvcrt.dll Writing to location 00000008.
|
||||
|
||||
Registers:
|
||||
eax=00003039 ebx=00000064 ecx=00000008 edx=0244fec0 esi=00401211 edi=0244fec0
|
||||
eip=78027470 esp=0244fcd8 ebp=0244fea8 iopl=0 nv up ei pl nz na pe nc
|
||||
cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00010202
|
||||
|
||||
Call stack:
|
||||
78027470 C:\WINDOWS\system32\msvcrt.dll:78027470 wscanf
|
||||
7802544B C:\WINDOWS\system32\msvcrt.dll:7802544B sscanf
|
||||
00401241 C:\home\jrfonseca\drmingw\src\test.exe:00401241 YetAnotherFunction //C/home/jrfonseca/drmingw/src/test.cxx:14
|
||||
00401272 C:\home\jrfonseca\drmingw\src\test.exe:00401272 MyWonderfulFunction //C/home/jrfonseca/drmingw/src/test.cxx:19
|
||||
004012A9 C:\home\jrfonseca\drmingw\src\test.exe:004012A9 main //C/home/jrfonseca/drmingw/src/test.cxx:24
|
||||
004011C1 C:\home\jrfonseca\drmingw\src\test.exe:004011C1
|
||||
004011EB C:\home\jrfonseca\drmingw\src\test.exe:004011EB
|
||||
77E87903 C:\WINDOWS\system32\KERNEL32.dll:77E87903 SetUnhandledExceptionFilter
|
||||
</pre>
|
||||
|
||||
<h1>Appendix</h1>
|
||||
|
||||
<h2><a name="jit"></a>Enabling Just-in-Time (JIT) Debugging</h2>
|
||||
|
||||
<p><em>[Taken from Using Microsoft Debuggers of the April 2000 Platform SDK.]</em></p>
|
||||
|
||||
<p>There are a variety of application errors which will cause Windows
|
||||
NT/Windows 2000 a to terminate the application. The most common kinds of
|
||||
errors are deadlocks and access violations. From the operating systems
|
||||
point of view, these are all simply unhandled exceptions.</p>
|
||||
|
||||
<p>When an application error occurs, Windows searches for an exception
|
||||
handler. If it does not find an exception handler, the system verifies that
|
||||
the application is not currently being debugged and considers the exception
|
||||
to be unhandled. At this point, there are three possible responses:</p>
|
||||
|
||||
<ul>
|
||||
<li>Windows can end the process immediately.</li>
|
||||
|
||||
<li>Windows can freeze the process and start a user-mode debugger. This
|
||||
debugger can then be used to examine the application.</li>
|
||||
|
||||
<li>Windows can run a debugging tool which will create a memory dump
|
||||
file of the application's memory space, and then end the process.</li>
|
||||
</ul>
|
||||
|
||||
<p>The debugging tool which is used to debug the application or write the
|
||||
dump file is called <I>Just-in-Time (JIT) Debugger</I>, or the
|
||||
<i>post-mortem debugger</i>.</p>
|
||||
|
||||
<p>The default JIT debugger is Dr. Watson. When the application throws
|
||||
an unhandled exception, Dr. Watson attaches itself to the application and
|
||||
generates a crash dump file. After it creates the crash dump file, Dr.
|
||||
Watson closes the application and exits.</p>
|
||||
|
||||
<p>Any user-mode debugging tool can be selected as the JIT debugger:</p>
|
||||
|
||||
<ul>
|
||||
<li>To change the JIT debugger to WinDbg, run <b>windbg -I</b>. When
|
||||
WinDbg is the JIT debugger, WinDbg will be activated whenever an
|
||||
application crashes. See WinDbg Command Line Options for details.</li>
|
||||
|
||||
<li>To change the JIT debugger to NTSD, you must edit the registry.
|
||||
When NTSD is the JIT debugger, NTSD will be activated whenever an
|
||||
application crashes.</li>
|
||||
|
||||
<li>To change the JIT debugger back to Dr. Watson, run <b>drwtsn32
|
||||
-i</b>. When Dr. Watson is the JIT debugger, a memory dump file will
|
||||
be written to disk if an application crashes. See Dr. Watson Command
|
||||
Line Options for details.</li>
|
||||
</ul>
|
||||
|
||||
<p>Only a system administrator can alter the JIT settings.</p>
|
||||
|
||||
<p>If a JIT debugger has been installed, you can deliberately break into
|
||||
the debugger from a user-mode application by calling the <b>DebugBreak</b>
|
||||
function.</p>
|
||||
|
||||
<h3>Editing the Registry</h3>
|
||||
|
||||
<p>The Just-in-Time debugging settings are stored in the registry, under
|
||||
<b>\\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug\</b>.
|
||||
The two relevant keys in this directory are <b>Debugger</b> and
|
||||
<b>Auto</b>.</p>
|
||||
|
||||
<p>The <b>Debugger</b> key's value shows the name of the debugger specified
|
||||
to analyze application errors. The <b>Auto</b> key is either zero or
|
||||
one.</p>
|
||||
|
||||
<p>When an unhandled application error occurs, Windows checks to see if the
|
||||
<b>Debugger</b> and <b>Auto</b> keys exist.</p>
|
||||
|
||||
<p>If the <b>Auto</b> key equals zero and the <b>Debugger</b> value
|
||||
contains the name of a valid debugger (such as WinDbg or NTSD), the message
|
||||
box will have two buttons: <b>OK</b> and <b>Cancel</b>. If the <b>OK</b>
|
||||
button is pressed, the application is terminated. If the <b>Cancel</b>
|
||||
button is pressed, the debugger specified in the <b>Debugger</b> key is
|
||||
started.</p>
|
||||
|
||||
<p>If the <b>Auto</b> key equals zero, but the <b>Debugger</b> key value is
|
||||
empty, the message box will have only an <b>OK</b> button and no debugger
|
||||
will start.</p>
|
||||
|
||||
<p>If the <b>Auto</b> key equals one, no message box appears. The debugger
|
||||
referred to in the <b>Debugger</b> key is automatically started.</p>
|
||||
|
||||
<p><b>Setting Dr. Watson as the JIT debugger (default):</b></p>
|
||||
|
||||
<pre>
|
||||
Debugger = "drwtsn32 -p %ld -e %ld -g"
|
||||
Auto = 1
|
||||
</pre>
|
||||
|
||||
<p><b>Setting WinDbg as the JIT debugger:</b></p>
|
||||
|
||||
<pre>
|
||||
Debugger = "WinDbg -p %ld -e %ld"
|
||||
Auto = 1
|
||||
</pre>
|
||||
|
||||
<p><b>Setting NTSD as the JIT debugger:</b></p>
|
||||
|
||||
<pre>
|
||||
Debugger = "NTSD -p %ld -e %ld -g"
|
||||
Auto = 1
|
||||
</pre>
|
||||
|
||||
<p>In these examples, -<b>p %ld</b> specifies the process ID that NTSD
|
||||
will debug, -<b>e %ld</b> provides the event that caused the
|
||||
exception, and -<b>g</b> causes the debugger to skip the initial
|
||||
breakpoint. (Dr. Watson ignores the -<b>g</b> option.)</p>
|
||||
|
||||
<h2><a name="imagehlp"></a>The IMAGEHLP.DLL Saga</h2>
|
||||
|
||||
<p><em>[Taken from several Bugslayer articles of MSJ.]</em></p>
|
||||
|
||||
<p>The IMAGEHLP.DLL symbol engine first appeared in Windows NT<4E> 4.0. The
|
||||
beta Windows NT 5.0 SDK had new parts of IMAGEHLP.H that dealt with source
|
||||
and line information. In the meantime, the November 1998 Platform SDK
|
||||
showed and the IMAGEHLP.DLL that shipped with it supported the new source
|
||||
and line handling. There are several different versions of IMAGEHLP.DLL.
|
||||
The only one that does not support the new source and line information is
|
||||
the original Windows NT 4.0 version. </p>
|
||||
|
||||
<p>The IMAGEHLP.DLL version 5.00.1678.1 dynamically links to MSPDB50.DLL.
|
||||
It first tries to load MSDBI.DLL, and if that is not found it will load
|
||||
MSPDB50.DLL, so it works with both Visual C++<2B> 5.0 and 6.0. To use it with
|
||||
Visual C++ 6.0, copy MSPDB50.DLL to MSPDB60.DLL. If you want to get symbols
|
||||
from the field, you will have to compile with CodeView<65> symbols and use
|
||||
.DBG files to get them. Keep in mind that MSPDB50.DLL, like MSDBI.DLL, is
|
||||
not redistributable. </p>
|
||||
|
||||
<p>The IMAGEHLP.DLL version 5.00.1878.1, which comes with the Windows 2000
|
||||
Beta 2 Platform SDK, hard links against MSDBI.DLL instead of dynamically
|
||||
loading MSPDB50.DLL as in earlier versions to read PDB files. The problem
|
||||
is that MSDBI.DLL is not redistributable.</p>
|
||||
|
||||
<p>IMAGEHLP.DLL now uses DEBUGHLP.DLL.</p>
|
||||
|
||||
<p>If you want IMAGEHLP.DLL, it's available in:</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Platform SDK
|
||||
</li>
|
||||
<li>
|
||||
WinDBG Debugger
|
||||
</li>
|
||||
<li>
|
||||
Windows 2000
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h1>Suggested Reading</h1>
|
||||
|
||||
<ul>
|
||||
<li> <a
|
||||
href="http://www.microsoft.com/msj/0197/exception/exception.htm">A
|
||||
Crash Course on the Depths of Win32 Structured Exception Handling, MSJ
|
||||
January 1997</a> </li>
|
||||
|
||||
<li> <a
|
||||
href="http://www.microsoft.com/msj/0497/hood/hood0497.htm">MSJEXHND -
|
||||
Part 1, Under the Hood, MSJ April 1997</a></li>
|
||||
|
||||
<li> <a
|
||||
href="http://www.microsoft.com/msj/0597/hood0597.htm">MSJEXHND -
|
||||
Part 2, Under the Hood, MSJ May 1997</a></li>
|
||||
|
||||
<li><a
|
||||
href=http://www.microsoft.com/msj/0898/bugslayer0898.htm>Bugslayer,
|
||||
MSJ, August 1998</a></li>
|
||||
|
||||
<li> <a
|
||||
href="http://msdn.microsoft.com/library/techart/msdn_debug.htm"> The
|
||||
Win32 Debugging Application Programming Interface</a></li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!-- vim: set ai ts=4 sw=4 noet syntax=pyhtml: -->
|
||||
6
TBE/MinGW/doc/drmingw/drmingw.reg
Normal file
6
TBE/MinGW/doc/drmingw/drmingw.reg
Normal file
@@ -0,0 +1,6 @@
|
||||
REGEDIT4
|
||||
|
||||
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug]
|
||||
"Auto"="0"
|
||||
"Debugger"="C:\\home\\jrfonseca\\\\drmingw\\bin\\drmingw.exe -p %ld -e %ld"
|
||||
|
||||
BIN
TBE/MinGW/doc/drmingw/exception-nt.gif
Normal file
BIN
TBE/MinGW/doc/drmingw/exception-nt.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.0 KiB |
BIN
TBE/MinGW/doc/drmingw/install.gif
Normal file
BIN
TBE/MinGW/doc/drmingw/install.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.5 KiB |
BIN
TBE/MinGW/doc/drmingw/sample.gif
Normal file
BIN
TBE/MinGW/doc/drmingw/sample.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
20
TBE/MinGW/doc/drmingw/samples/exchndl2.cxx
Normal file
20
TBE/MinGW/doc/drmingw/samples/exchndl2.cxx
Normal file
@@ -0,0 +1,20 @@
|
||||
/* exchndl2.cxx
|
||||
*
|
||||
* A portable way to load the EXCHNDL.DLL on startup.
|
||||
*
|
||||
* Jose Fonseca
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
class ExceptionHandler
|
||||
{
|
||||
public:
|
||||
|
||||
ExceptionHandler()
|
||||
{
|
||||
LoadLibrary("exchndl.dll");
|
||||
}
|
||||
};
|
||||
|
||||
static ExceptionHandler gExceptionHandler; // global instance of class
|
||||
44
TBE/MinGW/doc/drmingw/samples/test.c
Normal file
44
TBE/MinGW/doc/drmingw/samples/test.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* test-c.c
|
||||
*
|
||||
* A sample C program to demonstrate the symbolic capabilities
|
||||
* of Dr.MinGW.
|
||||
*
|
||||
* Jose Fonseca
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
void YetAnotherFunction(int i)
|
||||
{
|
||||
int k;
|
||||
|
||||
#if 0
|
||||
/* Other ways to cause a GPF */
|
||||
*(int *)i = 5;
|
||||
__asm ("int $3");
|
||||
(*((void (*)(void)) 0x12345678))();
|
||||
#endif
|
||||
sscanf("12345", "%i", (int *) (k=i));
|
||||
}
|
||||
|
||||
struct AStructType
|
||||
{
|
||||
int AnArray[2];
|
||||
};
|
||||
|
||||
void MyWonderfulFunction(int AnInteger, double ADouble, int AnArray[4], char * AString, enum {a,b,c} AnEnum, struct AStructType AStruct, void (*AFunction)(void))
|
||||
{
|
||||
YetAnotherFunction( 8 );
|
||||
}
|
||||
|
||||
void ASimpleFunction(void) {}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
struct AStructType AStruct = {{10, 3}};
|
||||
int AnArray[4] = {4,3,2,1};
|
||||
|
||||
MyWonderfulFunction( 4, 5.6, AnArray, "Hello" , 1, AStruct, ASimpleFunction);
|
||||
|
||||
return 0;
|
||||
}
|
||||
BIN
TBE/MinGW/doc/drmingw/samples/test.exe
Normal file
BIN
TBE/MinGW/doc/drmingw/samples/test.exe
Normal file
Binary file not shown.
36
TBE/MinGW/doc/drmingw/samples/testcpp.cxx
Normal file
36
TBE/MinGW/doc/drmingw/samples/testcpp.cxx
Normal file
@@ -0,0 +1,36 @@
|
||||
/* test-c.c
|
||||
*
|
||||
* A sample C++ program to test Dr.MinGW.
|
||||
*
|
||||
* Jose Fonseca
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
typedef char * cp;
|
||||
|
||||
void YetAnotherFunction( int i, double j, char * pszString )
|
||||
{
|
||||
int k;
|
||||
|
||||
#if 0
|
||||
/* Other ways to cause a GPF */
|
||||
*(int *)i = 5;
|
||||
__asm ("int $3");
|
||||
(*((void (*)(void)) 0x12345678))();
|
||||
#endif
|
||||
|
||||
sscanf("12345", "%i", (int *) (k=i));
|
||||
}
|
||||
|
||||
void MyWonderfulFunction( int i, float j )
|
||||
{
|
||||
YetAnotherFunction( i * 2, j, "Hello" );
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
MyWonderfulFunction( 4, float(5.6) );
|
||||
|
||||
return 0;
|
||||
}
|
||||
BIN
TBE/MinGW/doc/drmingw/samples/testcpp.exe
Normal file
BIN
TBE/MinGW/doc/drmingw/samples/testcpp.exe
Normal file
Binary file not shown.
2
TBE/MinGW/doc/pexports/AUTHORS
Normal file
2
TBE/MinGW/doc/pexports/AUTHORS
Normal file
@@ -0,0 +1,2 @@
|
||||
Anders Norlander <anorland@hem2.passagen.se>
|
||||
Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
|
||||
340
TBE/MinGW/doc/pexports/COPYING
Normal file
340
TBE/MinGW/doc/pexports/COPYING
Normal file
@@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
38
TBE/MinGW/doc/pexports/README
Normal file
38
TBE/MinGW/doc/pexports/README
Normal file
@@ -0,0 +1,38 @@
|
||||
PEXPORTS 0.43 README
|
||||
============================================
|
||||
|
||||
PEXPORTS is a program to extract exported symbols from a PE image
|
||||
(executable). It can perform a simple check on the size of the
|
||||
arguments of the exported functions, provided there is a header with
|
||||
prototypes for the functions. This is useful when you want the
|
||||
decorated function names for functions using the stdcall calling
|
||||
convention. GCC is used to do the preprocessing so it must be in your
|
||||
path.
|
||||
|
||||
Note that the mingw32 version uses ';' as path separator,
|
||||
while the cygwin version uses ':'.
|
||||
|
||||
Command line options:
|
||||
=====================
|
||||
-h <header> parse header
|
||||
-o print function ordinals
|
||||
-p <preprocessor> set preprocessor
|
||||
-v verbose mode
|
||||
|
||||
Header files are searched for in the following directories:
|
||||
1. Current directory
|
||||
2. Directories in C_INCLUDE_PATH
|
||||
3. Directories in CPLUS_INCLUDE_PATH
|
||||
4. Directories in PATH
|
||||
|
||||
NOTE: The header parser is *very* primitive, it only tries to find
|
||||
function prototypes and check the number of arguments a function
|
||||
expects. It is NOT a complete C parser, there are probably many
|
||||
conditions when it will fail (especially complex parameter types),
|
||||
although I it works fine for me. Please report bugs or send me a
|
||||
patch.
|
||||
|
||||
Pexports, Copyright (C) 1998 Anders Norlander
|
||||
This program has ABSOLUTELY NO WARRANTY; This is free software, and you are
|
||||
welcome to redistribute it under certain conditions; see COPYING
|
||||
for details.
|
||||
68
TBE/MinGW/doc/redir/README
Normal file
68
TBE/MinGW/doc/redir/README
Normal file
@@ -0,0 +1,68 @@
|
||||
This is a simple port of DJGPP's redir utility for those who're stuck with
|
||||
braindead COMMAND/CMD shells on windows32 that cannot redirect standard
|
||||
error correctly.
|
||||
|
||||
Here's the documentation provided with DJGPP's redir utility (also
|
||||
provided in the .zip file):
|
||||
|
||||
redir
|
||||
|
||||
DOS, in its many flavors and versions, lacks a decent I/O redirection
|
||||
mechanism. Sure, it's got < and > and >>, but what about error
|
||||
messages? Lots of people ask, "How do you send those error messages to
|
||||
a file?" Well, you use a program like redir.
|
||||
|
||||
redir is basically a program that manipulates the standard file
|
||||
descriptors by copying them, closing and opening them, etc. Once it
|
||||
has the file descriptors where it wants them, it runs your program,
|
||||
which inherits the changed descriptors. Thus, redir has nearly
|
||||
complete control over the input and output of your program.
|
||||
|
||||
It also allows you to view the exit code of the program, and the
|
||||
elapsed time of the program, by supplying the appropriate options on
|
||||
the command line.
|
||||
|
||||
Note that redir is built with command-line expansion and response
|
||||
files disabled, so as to allow the application to control that
|
||||
themselves. This means that you can't use those features to provide
|
||||
redir's options or the command name, but if you use them for the
|
||||
command's options, the command will do the expansion if it wants to.
|
||||
|
||||
The exit code of redir is 1 if it exits on its own accord, else it
|
||||
returns the same error code as the program it runs.
|
||||
|
||||
Usage: redir [-i file] [-o file] [-oa file] [-e file] [-ea file] [-eo]
|
||||
[-oe] [-x] command [args . . .]
|
||||
-i file
|
||||
Redirect stdandard input from file
|
||||
-o file
|
||||
Redirect standard output to file
|
||||
-oa file
|
||||
Append standard output to file
|
||||
-e file
|
||||
Redirect standard error to file
|
||||
-ea file
|
||||
Append standard error to file
|
||||
-eo
|
||||
Redirect standard error to standard output
|
||||
-oe
|
||||
Redirect standard output to standard error
|
||||
-x
|
||||
Print the exit code of the command after it exits. If the exit
|
||||
code is 0..255, it is printed as is. If it is not, the low byte
|
||||
(0..255) is printed in decimal and the whole value is also
|
||||
printed in hex.
|
||||
|
||||
Options are processed in the order they are encountered. Thus, "-o foo
|
||||
-eo" means "redirect output to foo, then redirect errors there also",
|
||||
whereas "-eo -o foo" means "send errors to where output was going,
|
||||
then move output to foo".
|
||||
|
||||
Examples:
|
||||
|
||||
To redirect errors to a file:
|
||||
redir -e errors.lst command ...
|
||||
|
||||
To redirect output to a file, and errors through a pipe:
|
||||
redir -eo -o prog.out command ... | pipe
|
||||
|
||||
62
TBE/MinGW/doc/reimp/README
Normal file
62
TBE/MinGW/doc/reimp/README
Normal file
@@ -0,0 +1,62 @@
|
||||
README for reimp
|
||||
================
|
||||
|
||||
* Overview
|
||||
|
||||
`reimp' is a tool to convert Microsoft's new-style (short) import
|
||||
libraries to import libraries for win32 ports of GNU tools (mingw32,
|
||||
cygwin).
|
||||
|
||||
`reimp' reads an MS import library and writes all imports to the
|
||||
corresponding .DEF file(s) that it feeds to `dlltool' that creates the
|
||||
import library.
|
||||
|
||||
|
||||
* Invocation
|
||||
|
||||
Usage: reimp [options] IMPLIB
|
||||
|
||||
Options:
|
||||
-s, --dump-symbols dump symbols to stdout
|
||||
-d, --only-def only create .def files
|
||||
-c, --keep-case keep case in lib*.a file names
|
||||
--dlltool <name> use <name> for dlltool
|
||||
--as <name> use <name> for assembler
|
||||
|
||||
The `--dump-symbols' option makes `reimp' use a quick method for
|
||||
finding imported symbols and sending the names of found symbols to
|
||||
stdout. If the input library contain non-imported symbols they will be
|
||||
listed as well. The output symbols will have all decoration preserved
|
||||
(i.e '_' will prefix most symbols), so if you feed it to dlltool you
|
||||
should strip leading underscores. For example
|
||||
|
||||
echo EXPORTS > imp.def
|
||||
reimp imp.lib | sed 's/_//' >> imp.def
|
||||
dlltool -k --def imp.def --output-lib libimp.a --dllname imp.dll
|
||||
|
||||
The `--only-def' option makes `reimp' stop after generating the .DEF
|
||||
file(s).
|
||||
|
||||
By default `reimp' converts all output library names to lower-case. By
|
||||
using the `keep-case' option `reimp' will use exactly the case of the
|
||||
DLL imported from when creating an import library. KERNEL32.dll will
|
||||
generate libKERNEL32.a and not libkernel32.a as it would be default.
|
||||
|
||||
|
||||
* Notes on mixed libraries
|
||||
|
||||
If an input library contain regular objects (non-imports, i.e code and
|
||||
data) `reimp' will write out those objects unless you specify one of
|
||||
the `--only-def' and `--dump-symbols' options. You probably want to
|
||||
include those objects as well in the generated library. `reimp'
|
||||
doesn't do that automatically so you have to do it manually using
|
||||
`ar', like this
|
||||
|
||||
reimp imp.lib # this generates several .o or .obj files.
|
||||
ar rcs libimp.a *.obj # add them to library
|
||||
|
||||
|
||||
* Contact information
|
||||
|
||||
URL: http://www.acc.umu.se/~anorland/gnu-win32/
|
||||
Anders Norlander <anorland@hem2.passagen.se>
|
||||
40
TBE/MinGW/doc/res2coff/README
Normal file
40
TBE/MinGW/doc/res2coff/README
Normal file
@@ -0,0 +1,40 @@
|
||||
RES2COFF : a binary resource to COFF object format converter
|
||||
|
||||
First of all understand this :
|
||||
|
||||
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||
*
|
||||
* This source code is offered for use in the public domain. You may
|
||||
* use, modify or distribute it freely.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful but
|
||||
* WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||
* DISCLAMED. This includes but is not limited to warrenties of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
Second, should you reuse it, I'd really appretiate a reference to this
|
||||
software. Blessings (if the program is useful to you), why not. Blamings,
|
||||
none.
|
||||
|
||||
Now how to use it:
|
||||
|
||||
res2coff [-v] -i <resource file> -o <object file>
|
||||
|
||||
Both the resource and the object file have to be fully qualified and include
|
||||
the extension. I never assume anything about files.
|
||||
|
||||
the -v flag will turn on a verbose mode which will show you a
|
||||
short recap of all resources found in the resource file.
|
||||
|
||||
Revision history:
|
||||
|
||||
v1.00 First 'working' version using Jacob Navia's lccwin32
|
||||
v1.10 Ported to the Minimalist GNUWIN32 with the win32 headers
|
||||
from lccwin32, modified to pack system structures under GCC
|
||||
v1.20 Sorts the string tables found and now passes the tests
|
||||
in RCL 1.6.3
|
||||
|
||||
Enjoy
|
||||
|
||||
Pedro A. Aranda
|
||||
paag@tid.es
|
||||
23
TBE/MinGW/doc/unix2dos/COPYING
Normal file
23
TBE/MinGW/doc/unix2dos/COPYING
Normal file
@@ -0,0 +1,23 @@
|
||||
Copyright (c) 1994, 1995 Benjamin Lin.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice in the documentation and/or other materials provided with
|
||||
the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
236
TBE/MinGW/doc/unix2dos/unix2dos.html
Normal file
236
TBE/MinGW/doc/unix2dos/unix2dos.html
Normal file
@@ -0,0 +1,236 @@
|
||||
Content-type: text/html
|
||||
|
||||
<HTML><HEAD><TITLE>Manpage of unix2dos</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>unix2dos</H1>
|
||||
Section: User Commands (1)<BR>Updated: unix2dos v2.2<BR><A HREF="#index">Index</A>
|
||||
<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
||||
|
||||
<P>
|
||||
<A NAME="lbAB"> </A>
|
||||
<H2>NAME</H2>
|
||||
|
||||
<P>
|
||||
unix2dos - UNIX to DOS text file format converter
|
||||
<P>
|
||||
<A NAME="lbAC"> </A>
|
||||
<H2>SYNOPSYS</H2>
|
||||
|
||||
<P>
|
||||
unix2dos [options] [-c convmode] [-o file ...] [-n infile outfile ...]
|
||||
<P>
|
||||
|
||||
Options:
|
||||
<P>
|
||||
|
||||
[-hkqV] [--help] [--keepdate] [--quiet] [--version]
|
||||
<P>
|
||||
<A NAME="lbAD"> </A>
|
||||
<H2>DESCRIPTION</H2>
|
||||
|
||||
<P>
|
||||
<P>
|
||||
|
||||
This manual page documents dos2unix, the program that converts text
|
||||
files in UNIX format to DOS format.
|
||||
<P>
|
||||
<A NAME="lbAE"> </A>
|
||||
<H2>OPTIONS</H2>
|
||||
|
||||
<P>
|
||||
The following options are available:
|
||||
<DL COMPACT>
|
||||
<DT><B>-h --help</B>
|
||||
|
||||
<DD>
|
||||
Print online help.
|
||||
<P>
|
||||
<DT><B>-k --keepdate</B>
|
||||
|
||||
<DD>
|
||||
Keep the date stamp of output file same as input file.
|
||||
<P>
|
||||
<DT><B>-q --quiet</B>
|
||||
|
||||
<DD>
|
||||
Quiet mode. Suppress all warning and messages.
|
||||
<P>
|
||||
<DT><B>-V --version</B>
|
||||
|
||||
<DD>
|
||||
Prints version information.
|
||||
<P>
|
||||
<DT><B>-c --convmode convmode</B>
|
||||
|
||||
<DD>
|
||||
Sets conversion mode. Simulates dos2unix under SunOS.
|
||||
<P>
|
||||
<DT><B>-o --oldfile file ...</B>
|
||||
|
||||
<DD>
|
||||
Old file mode. Convert the file and write output to it. The program
|
||||
default to run in this mode. Wildcard names may be used.
|
||||
<P>
|
||||
<DT><B>-n --newfile infile outfile ...</B>
|
||||
|
||||
<DD>
|
||||
New file mode. Convert the infile and write output to outfile. File names
|
||||
must be given in pairs and wildcard names should NOT be used or you WILL
|
||||
lost your files.
|
||||
<P>
|
||||
</DL>
|
||||
<A NAME="lbAF"> </A>
|
||||
<H2>EXAMPLES</H2>
|
||||
|
||||
<P>
|
||||
<P>
|
||||
|
||||
Get input from stdin and write output to stdout.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>unix2dos</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert and replace a.txt. Convert and replace b.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>unix2dos a.txt b.txt</B>
|
||||
|
||||
<DT><DD>
|
||||
<B>unix2dos -o a.txt b.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert and replace a.txt in ASCII conversion mode.
|
||||
Convert and replace b.txt in ISO conversion mode.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>dos2unix a.txt -c iso b.txt</B>
|
||||
|
||||
<DT><DD>
|
||||
<B>dos2unix -c ascii a.txt -c iso b.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert and replace a.txt while keeping original date stamp.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>unix2dos -k a.txt</B>
|
||||
|
||||
<DT><DD>
|
||||
<B>unix2dos -k -o a.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert a.txt and write to e.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>unix2dos -n a.txt e.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert a.txt and write to e.txt, keep date stamp of e.txt same as a.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>unix2dos -k -n a.txt e.txt </B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert and replace a.txt. Convert b.txt and write to e.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>unix2dos a.txt -n b.txt e.txt</B>
|
||||
|
||||
<DT><DD>
|
||||
<B>unix2dos -o a.txt -n b.txt e.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Convert c.txt and write to e.txt. Convert and replace a.txt.
|
||||
Convert and replace b.txt. Convert d.txt and write to f.txt.
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
<B>unix2dos -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt</B>
|
||||
|
||||
<P>
|
||||
</DL>
|
||||
<A NAME="lbAG"> </A>
|
||||
<H2>DIAGNOSTICS</H2>
|
||||
|
||||
<P>
|
||||
<A NAME="lbAH"> </A>
|
||||
<H2>BUGS</H2>
|
||||
|
||||
<P>
|
||||
The program does not work properly under MSDOS in stdio processing mode.
|
||||
If you know why is that so, please tell me.
|
||||
<P>
|
||||
<A NAME="lbAI"> </A>
|
||||
<H2>AUTHOR</H2>
|
||||
|
||||
<P>
|
||||
Benjamin Lin - (
|
||||
<B><A HREF="mailto:blin@socs.uts.edu.au">blin@socs.uts.edu.au</A></B>
|
||||
|
||||
)
|
||||
<P>
|
||||
<A NAME="lbAJ"> </A>
|
||||
<H2>MISCELLANY</H2>
|
||||
|
||||
<P>
|
||||
Tested environment:
|
||||
<DL COMPACT>
|
||||
<DT><DD>
|
||||
Linux 1.2.0 with GNU C 2.5.8
|
||||
<DT><DD>
|
||||
SunOS 4.1.3 with GNU C 2.6.3
|
||||
<DT><DD>
|
||||
MS-DOS 6.20 with Borland C++ 4.02
|
||||
</DL>
|
||||
<P>
|
||||
|
||||
Suggestions and bug reports are welcome.
|
||||
<P>
|
||||
<A NAME="lbAK"> </A>
|
||||
<H2>SEE ALSO</H2>
|
||||
|
||||
<A HREF="http://localhost/cgi-bin/man/man2html?1+dos2unix">dos2unix</A>(1)
|
||||
<P>
|
||||
<P>
|
||||
|
||||
<HR>
|
||||
<A NAME="index"> </A><H2>Index</H2>
|
||||
<DL>
|
||||
<DT><A HREF="#lbAB">NAME</A><DD>
|
||||
<DT><A HREF="#lbAC">SYNOPSYS</A><DD>
|
||||
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
|
||||
<DT><A HREF="#lbAE">OPTIONS</A><DD>
|
||||
<DT><A HREF="#lbAF">EXAMPLES</A><DD>
|
||||
<DT><A HREF="#lbAG">DIAGNOSTICS</A><DD>
|
||||
<DT><A HREF="#lbAH">BUGS</A><DD>
|
||||
<DT><A HREF="#lbAI">AUTHOR</A><DD>
|
||||
<DT><A HREF="#lbAJ">MISCELLANY</A><DD>
|
||||
<DT><A HREF="#lbAK">SEE ALSO</A><DD>
|
||||
</DL>
|
||||
<HR>
|
||||
This document was created by
|
||||
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
|
||||
using the manual pages.<BR>
|
||||
Time: 11:52:21 GMT, December 04, 2002
|
||||
</BODY>
|
||||
</HTML>
|
||||
1472
TBE/MinGW/include/GL/gl.h
Normal file
1472
TBE/MinGW/include/GL/gl.h
Normal file
File diff suppressed because it is too large
Load Diff
4623
TBE/MinGW/include/GL/glext.h
Normal file
4623
TBE/MinGW/include/GL/glext.h
Normal file
File diff suppressed because it is too large
Load Diff
328
TBE/MinGW/include/GL/glu.h
Normal file
328
TBE/MinGW/include/GL/glu.h
Normal file
@@ -0,0 +1,328 @@
|
||||
/*
|
||||
** License Applicability. Except to the extent portions of this file are
|
||||
** made subject to an alternative license as permitted in the SGI Free
|
||||
** Software License B, Version 1.1 (the "License"), the contents of this
|
||||
** file are subject only to the provisions of the License. You may not use
|
||||
** this file except in compliance with the License. You may obtain a copy
|
||||
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
|
||||
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
|
||||
**
|
||||
** http://oss.sgi.com/projects/FreeB
|
||||
**
|
||||
** Note that, as provided in the License, the Software is distributed on an
|
||||
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
||||
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
|
||||
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
|
||||
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
||||
**
|
||||
** Original Code. The Original Code is: OpenGL Sample Implementation,
|
||||
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
|
||||
** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
|
||||
** Copyright in any portions created by third parties is as indicated
|
||||
** elsewhere herein. All Rights Reserved.
|
||||
**
|
||||
** Additional Notice Provisions: This software was created using the
|
||||
** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
|
||||
** not been independently verified as being compliant with the OpenGL(R)
|
||||
** version 1.2.1 Specification.
|
||||
*/
|
||||
|
||||
/*
|
||||
* 2002-Apr-15, Marcus Geelnard:
|
||||
* Changed GLAPIENTRY to APIENTRY.
|
||||
*/
|
||||
|
||||
#ifndef __glu_h__
|
||||
#define __glu_h__
|
||||
|
||||
#include <GL/gl.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
/* Extensions */
|
||||
#define GLU_EXT_object_space_tess 1
|
||||
#define GLU_EXT_nurbs_tessellator 1
|
||||
|
||||
/* Boolean */
|
||||
#define GLU_FALSE 0
|
||||
#define GLU_TRUE 1
|
||||
|
||||
/* Version */
|
||||
#define GLU_VERSION_1_1 1
|
||||
#define GLU_VERSION_1_2 1
|
||||
#define GLU_VERSION_1_3 1
|
||||
|
||||
/* StringName */
|
||||
#define GLU_VERSION 100800
|
||||
#define GLU_EXTENSIONS 100801
|
||||
|
||||
/* ErrorCode */
|
||||
#define GLU_INVALID_ENUM 100900
|
||||
#define GLU_INVALID_VALUE 100901
|
||||
#define GLU_OUT_OF_MEMORY 100902
|
||||
#define GLU_INVALID_OPERATION 100904
|
||||
|
||||
/* NurbsDisplay */
|
||||
/* GLU_FILL */
|
||||
#define GLU_OUTLINE_POLYGON 100240
|
||||
#define GLU_OUTLINE_PATCH 100241
|
||||
|
||||
/* NurbsCallback */
|
||||
#define GLU_NURBS_ERROR 100103
|
||||
#define GLU_ERROR 100103
|
||||
#define GLU_NURBS_BEGIN 100164
|
||||
#define GLU_NURBS_BEGIN_EXT 100164
|
||||
#define GLU_NURBS_VERTEX 100165
|
||||
#define GLU_NURBS_VERTEX_EXT 100165
|
||||
#define GLU_NURBS_NORMAL 100166
|
||||
#define GLU_NURBS_NORMAL_EXT 100166
|
||||
#define GLU_NURBS_COLOR 100167
|
||||
#define GLU_NURBS_COLOR_EXT 100167
|
||||
#define GLU_NURBS_TEXTURE_COORD 100168
|
||||
#define GLU_NURBS_TEX_COORD_EXT 100168
|
||||
#define GLU_NURBS_END 100169
|
||||
#define GLU_NURBS_END_EXT 100169
|
||||
#define GLU_NURBS_BEGIN_DATA 100170
|
||||
#define GLU_NURBS_BEGIN_DATA_EXT 100170
|
||||
#define GLU_NURBS_VERTEX_DATA 100171
|
||||
#define GLU_NURBS_VERTEX_DATA_EXT 100171
|
||||
#define GLU_NURBS_NORMAL_DATA 100172
|
||||
#define GLU_NURBS_NORMAL_DATA_EXT 100172
|
||||
#define GLU_NURBS_COLOR_DATA 100173
|
||||
#define GLU_NURBS_COLOR_DATA_EXT 100173
|
||||
#define GLU_NURBS_TEXTURE_COORD_DATA 100174
|
||||
#define GLU_NURBS_TEX_COORD_DATA_EXT 100174
|
||||
#define GLU_NURBS_END_DATA 100175
|
||||
#define GLU_NURBS_END_DATA_EXT 100175
|
||||
|
||||
/* NurbsError */
|
||||
#define GLU_NURBS_ERROR1 100251
|
||||
#define GLU_NURBS_ERROR2 100252
|
||||
#define GLU_NURBS_ERROR3 100253
|
||||
#define GLU_NURBS_ERROR4 100254
|
||||
#define GLU_NURBS_ERROR5 100255
|
||||
#define GLU_NURBS_ERROR6 100256
|
||||
#define GLU_NURBS_ERROR7 100257
|
||||
#define GLU_NURBS_ERROR8 100258
|
||||
#define GLU_NURBS_ERROR9 100259
|
||||
#define GLU_NURBS_ERROR10 100260
|
||||
#define GLU_NURBS_ERROR11 100261
|
||||
#define GLU_NURBS_ERROR12 100262
|
||||
#define GLU_NURBS_ERROR13 100263
|
||||
#define GLU_NURBS_ERROR14 100264
|
||||
#define GLU_NURBS_ERROR15 100265
|
||||
#define GLU_NURBS_ERROR16 100266
|
||||
#define GLU_NURBS_ERROR17 100267
|
||||
#define GLU_NURBS_ERROR18 100268
|
||||
#define GLU_NURBS_ERROR19 100269
|
||||
#define GLU_NURBS_ERROR20 100270
|
||||
#define GLU_NURBS_ERROR21 100271
|
||||
#define GLU_NURBS_ERROR22 100272
|
||||
#define GLU_NURBS_ERROR23 100273
|
||||
#define GLU_NURBS_ERROR24 100274
|
||||
#define GLU_NURBS_ERROR25 100275
|
||||
#define GLU_NURBS_ERROR26 100276
|
||||
#define GLU_NURBS_ERROR27 100277
|
||||
#define GLU_NURBS_ERROR28 100278
|
||||
#define GLU_NURBS_ERROR29 100279
|
||||
#define GLU_NURBS_ERROR30 100280
|
||||
#define GLU_NURBS_ERROR31 100281
|
||||
#define GLU_NURBS_ERROR32 100282
|
||||
#define GLU_NURBS_ERROR33 100283
|
||||
#define GLU_NURBS_ERROR34 100284
|
||||
#define GLU_NURBS_ERROR35 100285
|
||||
#define GLU_NURBS_ERROR36 100286
|
||||
#define GLU_NURBS_ERROR37 100287
|
||||
|
||||
/* NurbsProperty */
|
||||
#define GLU_AUTO_LOAD_MATRIX 100200
|
||||
#define GLU_CULLING 100201
|
||||
#define GLU_SAMPLING_TOLERANCE 100203
|
||||
#define GLU_DISPLAY_MODE 100204
|
||||
#define GLU_PARAMETRIC_TOLERANCE 100202
|
||||
#define GLU_SAMPLING_METHOD 100205
|
||||
#define GLU_U_STEP 100206
|
||||
#define GLU_V_STEP 100207
|
||||
#define GLU_NURBS_MODE 100160
|
||||
#define GLU_NURBS_MODE_EXT 100160
|
||||
#define GLU_NURBS_TESSELLATOR 100161
|
||||
#define GLU_NURBS_TESSELLATOR_EXT 100161
|
||||
#define GLU_NURBS_RENDERER 100162
|
||||
#define GLU_NURBS_RENDERER_EXT 100162
|
||||
|
||||
/* NurbsSampling */
|
||||
#define GLU_OBJECT_PARAMETRIC_ERROR 100208
|
||||
#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208
|
||||
#define GLU_OBJECT_PATH_LENGTH 100209
|
||||
#define GLU_OBJECT_PATH_LENGTH_EXT 100209
|
||||
#define GLU_PATH_LENGTH 100215
|
||||
#define GLU_PARAMETRIC_ERROR 100216
|
||||
#define GLU_DOMAIN_DISTANCE 100217
|
||||
|
||||
/* NurbsTrim */
|
||||
#define GLU_MAP1_TRIM_2 100210
|
||||
#define GLU_MAP1_TRIM_3 100211
|
||||
|
||||
/* QuadricDrawStyle */
|
||||
#define GLU_POINT 100010
|
||||
#define GLU_LINE 100011
|
||||
#define GLU_FILL 100012
|
||||
#define GLU_SILHOUETTE 100013
|
||||
|
||||
/* QuadricCallback */
|
||||
/* GLU_ERROR */
|
||||
|
||||
/* QuadricNormal */
|
||||
#define GLU_SMOOTH 100000
|
||||
#define GLU_FLAT 100001
|
||||
#define GLU_NONE 100002
|
||||
|
||||
/* QuadricOrientation */
|
||||
#define GLU_OUTSIDE 100020
|
||||
#define GLU_INSIDE 100021
|
||||
|
||||
/* TessCallback */
|
||||
#define GLU_TESS_BEGIN 100100
|
||||
#define GLU_BEGIN 100100
|
||||
#define GLU_TESS_VERTEX 100101
|
||||
#define GLU_VERTEX 100101
|
||||
#define GLU_TESS_END 100102
|
||||
#define GLU_END 100102
|
||||
#define GLU_TESS_ERROR 100103
|
||||
#define GLU_TESS_EDGE_FLAG 100104
|
||||
#define GLU_EDGE_FLAG 100104
|
||||
#define GLU_TESS_COMBINE 100105
|
||||
#define GLU_TESS_BEGIN_DATA 100106
|
||||
#define GLU_TESS_VERTEX_DATA 100107
|
||||
#define GLU_TESS_END_DATA 100108
|
||||
#define GLU_TESS_ERROR_DATA 100109
|
||||
#define GLU_TESS_EDGE_FLAG_DATA 100110
|
||||
#define GLU_TESS_COMBINE_DATA 100111
|
||||
|
||||
/* TessContour */
|
||||
#define GLU_CW 100120
|
||||
#define GLU_CCW 100121
|
||||
#define GLU_INTERIOR 100122
|
||||
#define GLU_EXTERIOR 100123
|
||||
#define GLU_UNKNOWN 100124
|
||||
|
||||
/* TessProperty */
|
||||
#define GLU_TESS_WINDING_RULE 100140
|
||||
#define GLU_TESS_BOUNDARY_ONLY 100141
|
||||
#define GLU_TESS_TOLERANCE 100142
|
||||
|
||||
/* TessError */
|
||||
#define GLU_TESS_ERROR1 100151
|
||||
#define GLU_TESS_ERROR2 100152
|
||||
#define GLU_TESS_ERROR3 100153
|
||||
#define GLU_TESS_ERROR4 100154
|
||||
#define GLU_TESS_ERROR5 100155
|
||||
#define GLU_TESS_ERROR6 100156
|
||||
#define GLU_TESS_ERROR7 100157
|
||||
#define GLU_TESS_ERROR8 100158
|
||||
#define GLU_TESS_MISSING_BEGIN_POLYGON 100151
|
||||
#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152
|
||||
#define GLU_TESS_MISSING_END_POLYGON 100153
|
||||
#define GLU_TESS_MISSING_END_CONTOUR 100154
|
||||
#define GLU_TESS_COORD_TOO_LARGE 100155
|
||||
#define GLU_TESS_NEED_COMBINE_CALLBACK 100156
|
||||
|
||||
/* TessWinding */
|
||||
#define GLU_TESS_WINDING_ODD 100130
|
||||
#define GLU_TESS_WINDING_NONZERO 100131
|
||||
#define GLU_TESS_WINDING_POSITIVE 100132
|
||||
#define GLU_TESS_WINDING_NEGATIVE 100133
|
||||
#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
class GLUnurbs;
|
||||
class GLUquadric;
|
||||
class GLUtesselator;
|
||||
#else
|
||||
typedef struct GLUnurbs GLUnurbs;
|
||||
typedef struct GLUquadric GLUquadric;
|
||||
typedef struct GLUtesselator GLUtesselator;
|
||||
#endif
|
||||
|
||||
typedef GLUnurbs GLUnurbsObj;
|
||||
typedef GLUquadric GLUquadricObj;
|
||||
typedef GLUtesselator GLUtesselatorObj;
|
||||
typedef GLUtesselator GLUtriangulatorObj;
|
||||
|
||||
#define GLU_TESS_MAX_COORD 1.0e150
|
||||
|
||||
/* Internal convenience typedefs */
|
||||
typedef void (APIENTRY *_GLUfuncptr)();
|
||||
|
||||
GLAPI void APIENTRY gluBeginCurve (GLUnurbs* nurb);
|
||||
GLAPI void APIENTRY gluBeginPolygon (GLUtesselator* tess);
|
||||
GLAPI void APIENTRY gluBeginSurface (GLUnurbs* nurb);
|
||||
GLAPI void APIENTRY gluBeginTrim (GLUnurbs* nurb);
|
||||
GLAPI GLint APIENTRY gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
|
||||
GLAPI GLint APIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data);
|
||||
GLAPI GLint APIENTRY gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
|
||||
GLAPI GLint APIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data);
|
||||
GLAPI GLint APIENTRY gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
|
||||
GLAPI GLint APIENTRY gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
|
||||
GLAPI GLboolean APIENTRY gluCheckExtension (const GLubyte *extName, const GLubyte *extString);
|
||||
GLAPI void APIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
|
||||
GLAPI void APIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb);
|
||||
GLAPI void APIENTRY gluDeleteQuadric (GLUquadric* quad);
|
||||
GLAPI void APIENTRY gluDeleteTess (GLUtesselator* tess);
|
||||
GLAPI void APIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
|
||||
GLAPI void APIENTRY gluEndCurve (GLUnurbs* nurb);
|
||||
GLAPI void APIENTRY gluEndPolygon (GLUtesselator* tess);
|
||||
GLAPI void APIENTRY gluEndSurface (GLUnurbs* nurb);
|
||||
GLAPI void APIENTRY gluEndTrim (GLUnurbs* nurb);
|
||||
GLAPI const GLubyte * APIENTRY gluErrorString (GLenum error);
|
||||
GLAPI void APIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data);
|
||||
GLAPI const GLubyte * APIENTRY gluGetString (GLenum name);
|
||||
GLAPI void APIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data);
|
||||
GLAPI void APIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view);
|
||||
GLAPI void APIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ);
|
||||
GLAPI GLUnurbs* APIENTRY gluNewNurbsRenderer (void);
|
||||
GLAPI GLUquadric* APIENTRY gluNewQuadric (void);
|
||||
GLAPI GLUtesselator* APIENTRY gluNewTess (void);
|
||||
GLAPI void APIENTRY gluNextContour (GLUtesselator* tess, GLenum type);
|
||||
GLAPI void APIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc);
|
||||
GLAPI void APIENTRY gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData);
|
||||
GLAPI void APIENTRY gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData);
|
||||
GLAPI void APIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type);
|
||||
GLAPI void APIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value);
|
||||
GLAPI void APIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type);
|
||||
GLAPI void APIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);
|
||||
GLAPI void APIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
|
||||
GLAPI void APIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
|
||||
GLAPI void APIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport);
|
||||
GLAPI GLint APIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ);
|
||||
GLAPI void APIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type);
|
||||
GLAPI void APIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc);
|
||||
GLAPI void APIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw);
|
||||
GLAPI void APIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal);
|
||||
GLAPI void APIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation);
|
||||
GLAPI void APIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture);
|
||||
GLAPI GLint APIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut);
|
||||
GLAPI void APIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks);
|
||||
GLAPI void APIENTRY gluTessBeginContour (GLUtesselator* tess);
|
||||
GLAPI void APIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data);
|
||||
GLAPI void APIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc);
|
||||
GLAPI void APIENTRY gluTessEndContour (GLUtesselator* tess);
|
||||
GLAPI void APIENTRY gluTessEndPolygon (GLUtesselator* tess);
|
||||
GLAPI void APIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ);
|
||||
GLAPI void APIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data);
|
||||
GLAPI void APIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data);
|
||||
GLAPI GLint APIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);
|
||||
GLAPI GLint APIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __glu_h__ */
|
||||
107
TBE/MinGW/include/_mingw.h
Normal file
107
TBE/MinGW/include/_mingw.h
Normal file
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
* _mingw.h
|
||||
*
|
||||
* Mingw specific macros included by ALL include files.
|
||||
*
|
||||
* This file is part of the Mingw32 package.
|
||||
*
|
||||
* Contributors:
|
||||
* Created by Mumit Khan <khan@xraylith.wisc.edu>
|
||||
*
|
||||
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||
*
|
||||
* This source code is offered for use in the public domain. You may
|
||||
* use, modify or distribute it freely.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful but
|
||||
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||
* DISCLAIMED. This includes but is not limited to warranties of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __MINGW_H
|
||||
#define __MINGW_H
|
||||
|
||||
/* These are defined by the user (or the compiler)
|
||||
to specify how identifiers are imported from a DLL.
|
||||
|
||||
__DECLSPEC_SUPPORTED Defined if dllimport attribute is supported.
|
||||
__MINGW_IMPORT The attribute definition to specify imported
|
||||
variables/functions.
|
||||
_CRTIMP As above. For MS compatibility.
|
||||
__MINGW32_VERSION Runtime version.
|
||||
__MINGW32_MAJOR_VERSION Runtime major version.
|
||||
__MINGW32_MINOR_VERSION Runtime minor version.
|
||||
__MINGW32_BUILD_DATE Runtime build date.
|
||||
|
||||
Other macros:
|
||||
|
||||
__int64 define to be long long. Using a typedef can
|
||||
tweak bugs in the C++ parser.
|
||||
|
||||
All headers should include this first, and then use __DECLSPEC_SUPPORTED
|
||||
to choose between the old ``__imp__name'' style or __MINGW_IMPORT
|
||||
style declarations. */
|
||||
|
||||
#ifndef __GNUC__
|
||||
# ifndef __MINGW_IMPORT
|
||||
# define __MINGW_IMPORT __declspec(dllimport)
|
||||
# endif
|
||||
# ifndef _CRTIMP
|
||||
# define _CRTIMP __declspec(dllimport)
|
||||
# endif
|
||||
# define __DECLSPEC_SUPPORTED
|
||||
#else /* __GNUC__ */
|
||||
# ifdef __declspec
|
||||
# ifndef __MINGW_IMPORT
|
||||
/* Note the extern. This is needed to work around GCC's
|
||||
limitations in handling dllimport attribute. */
|
||||
# define __MINGW_IMPORT extern __attribute__((dllimport))
|
||||
# endif
|
||||
# ifndef _CRTIMP
|
||||
# ifdef __USE_CRTIMP
|
||||
# define _CRTIMP __attribute__((dllimport))
|
||||
# else
|
||||
# define _CRTIMP
|
||||
# endif
|
||||
# endif
|
||||
# define __DECLSPEC_SUPPORTED
|
||||
# else /* __declspec */
|
||||
# undef __DECLSPEC_SUPPORTED
|
||||
# undef __MINGW_IMPORT
|
||||
# ifndef _CRTIMP
|
||||
# define _CRTIMP
|
||||
# endif
|
||||
# endif /* __declspec */
|
||||
# ifndef __cdecl
|
||||
# define __cdecl __attribute__((cdecl))
|
||||
# endif
|
||||
# ifndef __stdcall
|
||||
# define __stdcall __attribute__((stdcall))
|
||||
# endif
|
||||
# ifndef __int64
|
||||
# define __int64 long long
|
||||
# endif
|
||||
# ifndef __int32
|
||||
# define __int32 long
|
||||
# endif
|
||||
# ifndef __int16
|
||||
# define __int16 int
|
||||
# endif
|
||||
# ifndef __int8
|
||||
# define __int8 char
|
||||
# endif
|
||||
# ifndef __small
|
||||
# define __small char
|
||||
# endif
|
||||
# ifndef __hyper
|
||||
# define __hyper long long
|
||||
# endif
|
||||
#endif /* __GNUC__ */
|
||||
|
||||
#define __MINGW32_VERSION 3.1
|
||||
#define __MINGW32_MAJOR_VERSION 3
|
||||
#define __MINGW32_MINOR_VERSION 1
|
||||
|
||||
#endif /* __MINGW_H */
|
||||
315
TBE/MinGW/include/accctrl.h
Normal file
315
TBE/MinGW/include/accctrl.h
Normal file
@@ -0,0 +1,315 @@
|
||||
#ifndef _ACCCTRL_H
|
||||
#define _ACCCTRL_H
|
||||
#if __GNUC__ >=3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define AccFree LocalFree
|
||||
#define ACTRL_RESERVED 0x00000000
|
||||
#define ACTRL_ACCESS_PROTECTED 0x00000001
|
||||
#define ACTRL_ACCESS_ALLOWED 0x00000001
|
||||
#define ACTRL_ACCESS_DENIED 0x00000002
|
||||
#define ACTRL_AUDIT_SUCCESS 0x00000004
|
||||
#define ACTRL_AUDIT_FAILURE 0x00000008
|
||||
#define ACTRL_SYSTEM_ACCESS 0x04000000
|
||||
#define ACTRL_DELETE 0x08000000
|
||||
#define ACTRL_READ_CONTROL 0x10000000
|
||||
#define ACTRL_CHANGE_ACCESS 0x20000000
|
||||
#define ACTRL_CHANGE_OWNER 0x40000000
|
||||
#define ACTRL_SYNCHRONIZE 0x80000000
|
||||
#define ACTRL_STD_RIGHTS_ALL 0xf8000000
|
||||
|
||||
#define ACTRL_FILE_READ 0x00000001
|
||||
#define ACTRL_FILE_WRITE 0x00000002
|
||||
#define ACTRL_FILE_APPEND 0x00000004
|
||||
#define ACTRL_FILE_READ_PROP 0x00000008
|
||||
#define ACTRL_FILE_WRITE_PROP 0x00000010
|
||||
#define ACTRL_FILE_EXECUTE 0x00000020
|
||||
#define ACTRL_FILE_READ_ATTRIB 0x00000080
|
||||
#define ACTRL_FILE_WRITE_ATTRIB 0x00000100
|
||||
#define ACTRL_FILE_CREATE_PIPE 0x00000200
|
||||
#define ACTRL_DIR_LIST 0x00000001
|
||||
#define ACTRL_DIR_CREATE_OBJECT 0x00000002
|
||||
#define ACTRL_DIR_CREATE_CHILD 0x00000004
|
||||
#define ACTRL_DIR_DELETE_CHILD 0x00000040
|
||||
#define ACTRL_DIR_TRAVERSE 0x00000020
|
||||
#define ACTRL_KERNEL_TERMINATE 0x00000001
|
||||
#define ACTRL_KERNEL_THREAD 0x00000002
|
||||
#define ACTRL_KERNEL_VM 0x00000004
|
||||
#define ACTRL_KERNEL_VM_READ 0x00000008
|
||||
#define ACTRL_KERNEL_VM_WRITE 0x00000010
|
||||
#define ACTRL_KERNEL_DUP_HANDLE 0x00000020
|
||||
#define ACTRL_KERNEL_PROCESS 0x00000040
|
||||
#define ACTRL_KERNEL_SET_INFO 0x00000080
|
||||
#define ACTRL_KERNEL_GET_INFO 0x00000100
|
||||
#define ACTRL_KERNEL_CONTROL 0x00000200
|
||||
#define ACTRL_KERNEL_ALERT 0x00000400
|
||||
#define ACTRL_KERNEL_GET_CONTEXT 0x00000800
|
||||
#define ACTRL_KERNEL_SET_CONTEXT 0x00001000
|
||||
#define ACTRL_KERNEL_TOKEN 0x00002000
|
||||
#define ACTRL_KERNEL_IMPERSONATE 0x00004000
|
||||
#define ACTRL_KERNEL_DIMPERSONATE 0x00008000
|
||||
#define ACTRL_PRINT_SADMIN 0x00000001
|
||||
#define ACTRL_PRINT_SLIST 0x00000002
|
||||
#define ACTRL_PRINT_PADMIN 0x00000004
|
||||
#define ACTRL_PRINT_PUSE 0x00000008
|
||||
#define ACTRL_PRINT_JADMIN 0x00000010
|
||||
#define ACTRL_SVC_GET_INFO 0x00000001
|
||||
#define ACTRL_SVC_SET_INFO 0x00000002
|
||||
#define ACTRL_SVC_STATUS 0x00000004
|
||||
#define ACTRL_SVC_LIST 0x00000008
|
||||
#define ACTRL_SVC_START 0x00000010
|
||||
#define ACTRL_SVC_STOP 0x00000020
|
||||
#define ACTRL_SVC_PAUSE 0x00000040
|
||||
#define ACTRL_SVC_INTERROGATE 0x00000080
|
||||
#define ACTRL_SVC_UCONTROL 0x00000100
|
||||
#define ACTRL_REG_QUERY 0x00000001
|
||||
#define ACTRL_REG_SET 0x00000002
|
||||
#define ACTRL_REG_CREATE_CHILD 0x00000004
|
||||
#define ACTRL_REG_LIST 0x00000008
|
||||
#define ACTRL_REG_NOTIFY 0x00000010
|
||||
#define ACTRL_REG_LINK 0x00000020
|
||||
#define ACTRL_WIN_CLIPBRD 0x00000001
|
||||
#define ACTRL_WIN_GLOBAL_ATOMS 0x00000002
|
||||
#define ACTRL_WIN_CREATE 0x00000004
|
||||
#define ACTRL_WIN_LIST_DESK 0x00000008
|
||||
#define ACTRL_WIN_LIST 0x00000010
|
||||
#define ACTRL_WIN_READ_ATTRIBS 0x00000020
|
||||
#define ACTRL_WIN_WRITE_ATTRIBS 0x00000040
|
||||
#define ACTRL_WIN_SCREEN 0x00000080
|
||||
#define ACTRL_WIN_EXIT 0x00000100
|
||||
#define ACTRL_ACCESS_NO_OPTIONS 0x00000000
|
||||
#define ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES 0x00000001
|
||||
#define ACCCTRL_DEFAULT_PROVIDERA "Windows NT Access Provider"
|
||||
#define ACCCTRL_DEFAULT_PROVIDERW L"Windows NT Access Provider"
|
||||
#define TRUSTEE_ACCESS_ALLOWED 0x00000001L
|
||||
#define TRUSTEE_ACCESS_READ 0x00000002L
|
||||
#define TRUSTEE_ACCESS_WRITE 0x00000004L
|
||||
#define TRUSTEE_ACCESS_EXPLICIT 0x00000001L
|
||||
#define TRUSTEE_ACCESS_READ_WRITE (TRUSTEE_ACCESS_READ | TRUSTEE_ACCESS_WRITE)
|
||||
#define TRUSTEE_ACCESS_ALL 0xFFFFFFFFL
|
||||
#define NO_INHERITANCE 0x0
|
||||
#define SUB_OBJECTS_ONLY_INHERIT 0x1
|
||||
#define SUB_CONTAINERS_ONLY_INHERIT 0x2
|
||||
#define SUB_CONTAINERS_AND_OBJECTS_INHERIT 0x3
|
||||
#define INHERIT_NO_PROPAGATE 0x4
|
||||
#define INHERIT_ONLY 0x8
|
||||
#define INHERITED_ACCESS_ENTRY 0x10
|
||||
#define INHERITED_PARENT 0x10000000
|
||||
#define INHERITED_GRANDPARENT 0x20000000
|
||||
|
||||
typedef ULONG INHERIT_FLAGS, *PINHERIT_FLAGS;
|
||||
typedef ULONG ACCESS_RIGHTS, *PACCESS_RIGHTS;
|
||||
|
||||
typedef enum _ACCESS_MODE {
|
||||
NOT_USED_ACCESS = 0,
|
||||
GRANT_ACCESS,
|
||||
SET_ACCESS,
|
||||
DENY_ACCESS,
|
||||
REVOKE_ACCESS,
|
||||
SET_AUDIT_SUCCESS,
|
||||
SET_AUDIT_FAILURE
|
||||
} ACCESS_MODE;
|
||||
typedef enum _SE_OBJECT_TYPE {
|
||||
SE_UNKNOWN_OBJECT_TYPE = 0,
|
||||
SE_FILE_OBJECT,
|
||||
SE_SERVICE,
|
||||
SE_PRINTER,
|
||||
SE_REGISTRY_KEY,
|
||||
SE_LMSHARE,
|
||||
SE_KERNEL_OBJECT,
|
||||
SE_WINDOW_OBJECT,
|
||||
SE_DS_OBJECT,
|
||||
SE_DS_OBJECT_ALL,
|
||||
SE_PROVIDER_DEFINED_OBJECT,
|
||||
SE_WMIGUID_OBJECT,
|
||||
SE_REGISTRY_WOW64_32KEY
|
||||
} SE_OBJECT_TYPE;
|
||||
typedef enum _TRUSTEE_TYPE {
|
||||
TRUSTEE_IS_UNKNOWN,
|
||||
TRUSTEE_IS_USER,
|
||||
TRUSTEE_IS_GROUP,
|
||||
TRUSTEE_IS_DOMAIN,
|
||||
TRUSTEE_IS_ALIAS,
|
||||
TRUSTEE_IS_WELL_KNOWN_GROUP,
|
||||
TRUSTEE_IS_DELETED,
|
||||
TRUSTEE_IS_INVALID,
|
||||
TRUSTEE_IS_COMPUTER
|
||||
} TRUSTEE_TYPE;
|
||||
typedef enum _TRUSTEE_FORM {
|
||||
TRUSTEE_IS_SID,
|
||||
TRUSTEE_IS_NAME,
|
||||
TRUSTEE_BAD_FORM,
|
||||
TRUSTEE_IS_OBJECTS_AND_SID,
|
||||
TRUSTEE_IS_OBJECTS_AND_NAME
|
||||
} TRUSTEE_FORM;
|
||||
typedef enum _MULTIPLE_TRUSTEE_OPERATION {
|
||||
NO_MULTIPLE_TRUSTEE,
|
||||
TRUSTEE_IS_IMPERSONATE
|
||||
} MULTIPLE_TRUSTEE_OPERATION;
|
||||
typedef struct _TRUSTEE_A {
|
||||
struct _TRUSTEE_A *pMultipleTrustee;
|
||||
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
|
||||
TRUSTEE_FORM TrusteeForm;
|
||||
TRUSTEE_TYPE TrusteeType;
|
||||
LPSTR ptstrName;
|
||||
} TRUSTEE_A, *PTRUSTEE_A, TRUSTEEA, *PTRUSTEEA;
|
||||
typedef struct _TRUSTEE_W {
|
||||
struct _TRUSTEE_W *pMultipleTrustee;
|
||||
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
|
||||
TRUSTEE_FORM TrusteeForm;
|
||||
TRUSTEE_TYPE TrusteeType;
|
||||
LPWSTR ptstrName;
|
||||
} TRUSTEE_W, *PTRUSTEE_W, TRUSTEEW, *PTRUSTEEW;
|
||||
typedef struct _ACTRL_ACCESS_ENTRYA {
|
||||
TRUSTEE_A Trustee;
|
||||
ULONG fAccessFlags;
|
||||
ACCESS_RIGHTS Access;
|
||||
ACCESS_RIGHTS ProvSpecificAccess;
|
||||
INHERIT_FLAGS Inheritance;
|
||||
LPCSTR lpInheritProperty;
|
||||
} ACTRL_ACCESS_ENTRYA, *PACTRL_ACCESS_ENTRYA;
|
||||
typedef struct _ACTRL_ACCESS_ENTRYW {
|
||||
TRUSTEE_W Trustee;
|
||||
ULONG fAccessFlags;
|
||||
ACCESS_RIGHTS Access;
|
||||
ACCESS_RIGHTS ProvSpecificAccess;
|
||||
INHERIT_FLAGS Inheritance;
|
||||
LPCWSTR lpInheritProperty;
|
||||
} ACTRL_ACCESS_ENTRYW, *PACTRL_ACCESS_ENTRYW;
|
||||
typedef struct _ACTRL_ACCESS_ENTRY_LISTA {
|
||||
ULONG cEntries;
|
||||
ACTRL_ACCESS_ENTRYA *pAccessList;
|
||||
} ACTRL_ACCESS_ENTRY_LISTA, *PACTRL_ACCESS_ENTRY_LISTA;
|
||||
typedef struct _ACTRL_ACCESS_ENTRY_LISTW {
|
||||
ULONG cEntries;
|
||||
ACTRL_ACCESS_ENTRYW *pAccessList;
|
||||
} ACTRL_ACCESS_ENTRY_LISTW, *PACTRL_ACCESS_ENTRY_LISTW;
|
||||
typedef struct _ACTRL_PROPERTY_ENTRYA {
|
||||
LPCSTR lpProperty;
|
||||
PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList;
|
||||
ULONG fListFlags;
|
||||
} ACTRL_PROPERTY_ENTRYA, *PACTRL_PROPERTY_ENTRYA;
|
||||
typedef struct _ACTRL_PROPERTY_ENTRYW {
|
||||
LPCWSTR lpProperty;
|
||||
PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList;
|
||||
ULONG fListFlags;
|
||||
} ACTRL_PROPERTY_ENTRYW, *PACTRL_PROPERTY_ENTRYW;
|
||||
typedef struct _ACTRL_ALISTA {
|
||||
ULONG cEntries;
|
||||
PACTRL_PROPERTY_ENTRYA pPropertyAccessList;
|
||||
} ACTRL_ACCESSA, *PACTRL_ACCESSA, ACTRL_AUDITA, *PACTRL_AUDITA;
|
||||
typedef struct _ACTRL_ALISTW {
|
||||
ULONG cEntries;
|
||||
PACTRL_PROPERTY_ENTRYW pPropertyAccessList;
|
||||
} ACTRL_ACCESSW, *PACTRL_ACCESSW, ACTRL_AUDITW, *PACTRL_AUDITW;
|
||||
typedef struct _TRUSTEE_ACCESSA {
|
||||
LPSTR lpProperty;
|
||||
ACCESS_RIGHTS Access;
|
||||
ULONG fAccessFlags;
|
||||
ULONG fReturnedAccess;
|
||||
} TRUSTEE_ACCESSA, *PTRUSTEE_ACCESSA;
|
||||
typedef struct _TRUSTEE_ACCESSW {
|
||||
LPWSTR lpProperty;
|
||||
ACCESS_RIGHTS Access;
|
||||
ULONG fAccessFlags;
|
||||
ULONG fReturnedAccess;
|
||||
} TRUSTEE_ACCESSW, *PTRUSTEE_ACCESSW;
|
||||
typedef struct _ACTRL_OVERLAPPED {
|
||||
_ANONYMOUS_UNION
|
||||
union {
|
||||
PVOID Provider;
|
||||
ULONG Reserved1;
|
||||
} DUMMYUNIONNAME;
|
||||
ULONG Reserved2;
|
||||
HANDLE hEvent;
|
||||
} ACTRL_OVERLAPPED, *PACTRL_OVERLAPPED;
|
||||
typedef struct _ACTRL_ACCESS_INFOA {
|
||||
ULONG fAccessPermission;
|
||||
LPSTR lpAccessPermissionName;
|
||||
} ACTRL_ACCESS_INFOA, *PACTRL_ACCESS_INFOA;
|
||||
typedef struct _ACTRL_ACCESS_INFOW {
|
||||
ULONG fAccessPermission;
|
||||
LPWSTR lpAccessPermissionName;
|
||||
} ACTRL_ACCESS_INFOW, *PACTRL_ACCESS_INFOW;
|
||||
typedef struct _ACTRL_CONTROL_INFOA {
|
||||
LPSTR lpControlId;
|
||||
LPSTR lpControlName;
|
||||
} ACTRL_CONTROL_INFOA, *PACTRL_CONTROL_INFOA;
|
||||
typedef struct _ACTRL_CONTROL_INFOW {
|
||||
LPWSTR lpControlId;
|
||||
LPWSTR lpControlName;
|
||||
} ACTRL_CONTROL_INFOW, *PACTRL_CONTROL_INFOW;
|
||||
typedef struct _EXPLICIT_ACCESS_A {
|
||||
DWORD grfAccessPermissions;
|
||||
ACCESS_MODE grfAccessMode;
|
||||
DWORD grfInheritance;
|
||||
TRUSTEE_A Trustee;
|
||||
} EXPLICIT_ACCESS_A, *PEXPLICIT_ACCESS_A, EXPLICIT_ACCESSA, *PEXPLICIT_ACCESSA;
|
||||
typedef struct _EXPLICIT_ACCESS_W {
|
||||
DWORD grfAccessPermissions;
|
||||
ACCESS_MODE grfAccessMode;
|
||||
DWORD grfInheritance;
|
||||
TRUSTEE_W Trustee;
|
||||
} EXPLICIT_ACCESS_W, *PEXPLICIT_ACCESS_W, EXPLICIT_ACCESSW, *PEXPLICIT_ACCESSW;
|
||||
typedef struct _OBJECTS_AND_SID {
|
||||
DWORD ObjectsPresent;
|
||||
GUID ObjectTypeGuid;
|
||||
GUID InheritedObjectTypeGuid;
|
||||
SID * pSid;
|
||||
} OBJECTS_AND_SID, *POBJECTS_AND_SID;
|
||||
typedef struct _OBJECTS_AND_NAME_A {
|
||||
DWORD ObjectsPresent;
|
||||
SE_OBJECT_TYPE ObjectType;
|
||||
LPSTR ObjectTypeName;
|
||||
LPSTR InheritedObjectTypeName;
|
||||
LPSTR ptstrName;
|
||||
} OBJECTS_AND_NAME_A, *POBJECTS_AND_NAME_A;
|
||||
typedef struct _OBJECTS_AND_NAME_W {
|
||||
DWORD ObjectsPresent;
|
||||
SE_OBJECT_TYPE ObjectType;
|
||||
LPWSTR ObjectTypeName;
|
||||
LPWSTR InheritedObjectTypeName;
|
||||
LPWSTR ptstrName;
|
||||
} OBJECTS_AND_NAME_W, *POBJECTS_AND_NAME_W;
|
||||
|
||||
|
||||
#ifdef UNICODE
|
||||
#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERW
|
||||
typedef TRUSTEE_W TRUSTEE_, *PTRUSTEE_;
|
||||
typedef TRUSTEEW TRUSTEE, *PTRUSTEE;
|
||||
typedef ACTRL_ACCESSW ACTRL_ACCESS, *PACTRL_ACCESS;
|
||||
typedef ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST;
|
||||
typedef ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO;
|
||||
typedef ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY;
|
||||
typedef ACTRL_AUDITW ACTRL_AUDIT, *PACTRL_AUDIT;
|
||||
typedef ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO;
|
||||
typedef EXPLICIT_ACCESS_W EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_;
|
||||
typedef EXPLICIT_ACCESSW EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
|
||||
typedef TRUSTEE_ACCESSW TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
|
||||
typedef OBJECTS_AND_NAME_W OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
|
||||
#else
|
||||
#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERA
|
||||
typedef TRUSTEE_A TRUSTEE_, *PTRUSTEE_;
|
||||
typedef TRUSTEEA TRUSTEE, *PTRUSTEE;
|
||||
typedef ACTRL_ACCESSA ACTRL_ACCESS, *PACTRL_ACCESS;
|
||||
typedef ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST;
|
||||
typedef ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO;
|
||||
typedef ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY;
|
||||
typedef ACTRL_AUDITA ACTRL_AUDIT, *PACTRL_AUDIT;
|
||||
typedef ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO;
|
||||
typedef EXPLICIT_ACCESS_A EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_;
|
||||
typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
|
||||
typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
|
||||
typedef OBJECTS_AND_NAME_A OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _ACCCTRL_H */
|
||||
113
TBE/MinGW/include/aclapi.h
Normal file
113
TBE/MinGW/include/aclapi.h
Normal file
@@ -0,0 +1,113 @@
|
||||
#ifndef _ACLAPI_H
|
||||
#define _ACLAPI_H
|
||||
#if __GNUC__ >= 3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#include <windows.h>
|
||||
#include <accctrl.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD);
|
||||
VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD);
|
||||
DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A,
|
||||
ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
|
||||
DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W,
|
||||
ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
|
||||
VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR);
|
||||
VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR);
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE,
|
||||
LPSTR,LPSTR,LPSTR);
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE,
|
||||
LPWSTR,LPWSTR,LPWSTR);
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID);
|
||||
VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID);
|
||||
VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID);
|
||||
VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID);
|
||||
DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK);
|
||||
DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK);
|
||||
DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK);
|
||||
DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
|
||||
DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*);
|
||||
DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*);
|
||||
DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
|
||||
PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
|
||||
DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
|
||||
PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
|
||||
DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,
|
||||
PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
|
||||
TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A);
|
||||
TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W);
|
||||
LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A);
|
||||
LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W);
|
||||
TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A);
|
||||
TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W);
|
||||
DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*,
|
||||
PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR);
|
||||
DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*,
|
||||
PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR);
|
||||
DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*);
|
||||
DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*);
|
||||
DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
|
||||
DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
|
||||
DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
|
||||
VOID WINAPI BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,PTRUSTEE_A,DWORD,ACCESS_MODE,DWORD);
|
||||
VOID WINAPI BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,PTRUSTEE_W,DWORD,ACCESS_MODE,DWORD);
|
||||
VOID WINAPI BuildImpersonateTrusteeA(PTRUSTEE_A,PTRUSTEE_A);
|
||||
VOID WINAPI BuildImpersonateTrusteeW(PTRUSTEE_W,PTRUSTEE_W);
|
||||
PTRUSTEE_A WINAPI GetMultipleTrusteeA(PTRUSTEE_A);
|
||||
PTRUSTEE_W WINAPI GetMultipleTrusteeW(PTRUSTEE_W);
|
||||
MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(PTRUSTEE_A);
|
||||
MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(PTRUSTEE_W);
|
||||
|
||||
#ifdef UNICODE
|
||||
#define BuildExplicitAccessWithName BuildExplicitAccessWithNameW
|
||||
#define BuildSecurityDescriptor BuildSecurityDescriptorW
|
||||
#define BuildTrusteeWithName BuildTrusteeWithNameW
|
||||
#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW
|
||||
#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW
|
||||
#define BuildTrusteeWithSid BuildTrusteeWithSidW
|
||||
#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW
|
||||
#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW
|
||||
#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW
|
||||
#define GetNamedSecurityInfo GetNamedSecurityInfoW
|
||||
#define GetTrusteeForm GetTrusteeFormW
|
||||
#define GetTrusteeName GetTrusteeNameW
|
||||
#define GetTrusteeType GetTrusteeTypeW
|
||||
#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW
|
||||
#define SetEntriesInAcl SetEntriesInAclW
|
||||
#define SetNamedSecurityInfo SetNamedSecurityInfoW
|
||||
#define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameW
|
||||
#define BuildImpersonateTrustee BuildImpersonateTrusteeW
|
||||
#define GetMultipleTrustee GetMultipleTrusteeW
|
||||
#define GetMultipleTrusteeOperation GetMultipleTrusteeOperationW
|
||||
#else
|
||||
#define BuildExplicitAccessWithName BuildExplicitAccessWithNameA
|
||||
#define BuildSecurityDescriptor BuildSecurityDescriptorA
|
||||
#define BuildTrusteeWithName BuildTrusteeWithNameA
|
||||
#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA
|
||||
#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA
|
||||
#define BuildTrusteeWithSid BuildTrusteeWithSidA
|
||||
#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA
|
||||
#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA
|
||||
#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA
|
||||
#define GetNamedSecurityInfo GetNamedSecurityInfoA
|
||||
#define GetTrusteeForm GetTrusteeFormA
|
||||
#define GetTrusteeName GetTrusteeNameA
|
||||
#define GetTrusteeType GetTrusteeTypeA
|
||||
#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA
|
||||
#define SetEntriesInAcl SetEntriesInAclA
|
||||
#define SetNamedSecurityInfo SetNamedSecurityInfoA
|
||||
#define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameA
|
||||
#define BuildImpersonateTrustee BuildImpersonateTrusteeA
|
||||
#define GetMultipleTrustee GetMultipleTrusteeA
|
||||
#define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA
|
||||
#endif /* UNICODE */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
298
TBE/MinGW/include/ansidecl.h
Normal file
298
TBE/MinGW/include/ansidecl.h
Normal file
@@ -0,0 +1,298 @@
|
||||
/* ANSI and traditional C compatability macros
|
||||
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* ANSI and traditional C compatibility macros
|
||||
|
||||
ANSI C is assumed if __STDC__ is #defined.
|
||||
|
||||
Macro ANSI C definition Traditional C definition
|
||||
----- ---- - ---------- ----------- - ----------
|
||||
ANSI_PROTOTYPES 1 not defined
|
||||
PTR `void *' `char *'
|
||||
PTRCONST `void *const' `char *'
|
||||
LONG_DOUBLE `long double' `double'
|
||||
const not defined `'
|
||||
volatile not defined `'
|
||||
signed not defined `'
|
||||
VA_START(ap, var) va_start(ap, var) va_start(ap)
|
||||
|
||||
Note that it is safe to write "void foo();" indicating a function
|
||||
with no return value, in all K+R compilers we have been able to test.
|
||||
|
||||
For declaring functions with prototypes, we also provide these:
|
||||
|
||||
PARAMS ((prototype))
|
||||
-- for functions which take a fixed number of arguments. Use this
|
||||
when declaring the function. When defining the function, write a
|
||||
K+R style argument list. For example:
|
||||
|
||||
char *strcpy PARAMS ((char *dest, char *source));
|
||||
...
|
||||
char *
|
||||
strcpy (dest, source)
|
||||
char *dest;
|
||||
char *source;
|
||||
{ ... }
|
||||
|
||||
|
||||
VPARAMS ((prototype, ...))
|
||||
-- for functions which take a variable number of arguments. Use
|
||||
PARAMS to declare the function, VPARAMS to define it. For example:
|
||||
|
||||
int printf PARAMS ((const char *format, ...));
|
||||
...
|
||||
int
|
||||
printf VPARAMS ((const char *format, ...))
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
For writing functions which take variable numbers of arguments, we
|
||||
also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros. These
|
||||
hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
|
||||
thoroughly than the simple VA_START() macro mentioned above.
|
||||
|
||||
VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
|
||||
Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
|
||||
corresponding to the list of fixed arguments. Then use va_arg
|
||||
normally to get the variable arguments, or pass your va_list object
|
||||
around. You do not declare the va_list yourself; VA_OPEN does it
|
||||
for you.
|
||||
|
||||
Here is a complete example:
|
||||
|
||||
int
|
||||
printf VPARAMS ((const char *format, ...))
|
||||
{
|
||||
int result;
|
||||
|
||||
VA_OPEN (ap, format);
|
||||
VA_FIXEDARG (ap, const char *, format);
|
||||
|
||||
result = vfprintf (stdout, format, ap);
|
||||
VA_CLOSE (ap);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
You can declare variables either before or after the VA_OPEN,
|
||||
VA_FIXEDARG sequence. Also, VA_OPEN and VA_CLOSE are the beginning
|
||||
and end of a block. They must appear at the same nesting level,
|
||||
and any variables declared after VA_OPEN go out of scope at
|
||||
VA_CLOSE. Unfortunately, with a K+R compiler, that includes the
|
||||
argument list. You can have multiple instances of VA_OPEN/VA_CLOSE
|
||||
pairs in a single function in case you need to traverse the
|
||||
argument list more than once.
|
||||
|
||||
For ease of writing code which uses GCC extensions but needs to be
|
||||
portable to other compilers, we provide the GCC_VERSION macro that
|
||||
simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
|
||||
wrappers around __attribute__. Also, __extension__ will be #defined
|
||||
to nothing if it doesn't work. See below.
|
||||
|
||||
This header also defines a lot of obsolete macros:
|
||||
CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
|
||||
AND, DOTS, NOARGS. Don't use them. */
|
||||
|
||||
#ifndef _ANSIDECL_H
|
||||
#define _ANSIDECL_H 1
|
||||
|
||||
/* Every source file includes this file,
|
||||
so they will all get the switch for lint. */
|
||||
/* LINTLIBRARY */
|
||||
|
||||
/* Using MACRO(x,y) in cpp #if conditionals does not work with some
|
||||
older preprocessors. Thus we can't define something like this:
|
||||
|
||||
#define HAVE_GCC_VERSION(MAJOR, MINOR) \
|
||||
(__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
|
||||
|
||||
and then test "#if HAVE_GCC_VERSION(2,7)".
|
||||
|
||||
So instead we use the macro below and test it against specific values. */
|
||||
|
||||
/* This macro simplifies testing whether we are using gcc, and if it
|
||||
is of a particular minimum version. (Both major & minor numbers are
|
||||
significant.) This macro will evaluate to 0 if we are not using
|
||||
gcc at all. */
|
||||
#ifndef GCC_VERSION
|
||||
#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
|
||||
#endif /* GCC_VERSION */
|
||||
|
||||
#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) || (defined(__alpha) && defined(__cplusplus))
|
||||
/* All known AIX compilers implement these things (but don't always
|
||||
define __STDC__). The RISC/OS MIPS compiler defines these things
|
||||
in SVR4 mode, but does not define __STDC__. */
|
||||
/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other
|
||||
C++ compilers, does not define __STDC__, though it acts as if this
|
||||
was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
|
||||
|
||||
#define ANSI_PROTOTYPES 1
|
||||
#define PTR void *
|
||||
#define PTRCONST void *const
|
||||
#define LONG_DOUBLE long double
|
||||
|
||||
#define PARAMS(ARGS) ARGS
|
||||
#define VPARAMS(ARGS) ARGS
|
||||
#define VA_START(VA_LIST, VAR) va_start(VA_LIST, VAR)
|
||||
|
||||
/* variadic function helper macros */
|
||||
/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
|
||||
use without inhibiting further decls and without declaring an
|
||||
actual variable. */
|
||||
#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP, VAR); { struct Qdmy
|
||||
#define VA_CLOSE(AP) } va_end(AP); }
|
||||
#define VA_FIXEDARG(AP, T, N) struct Qdmy
|
||||
|
||||
#undef const
|
||||
#undef volatile
|
||||
#undef signed
|
||||
|
||||
/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
|
||||
it too, but it's not in C89. */
|
||||
#undef inline
|
||||
#if __STDC_VERSION__ > 199901L
|
||||
/* it's a keyword */
|
||||
#else
|
||||
# if GCC_VERSION >= 2007
|
||||
# define inline __inline__ /* __inline__ prevents -pedantic warnings */
|
||||
# else
|
||||
# define inline /* nothing */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* These are obsolete. Do not use. */
|
||||
#ifndef IN_GCC
|
||||
#define CONST const
|
||||
#define VOLATILE volatile
|
||||
#define SIGNED signed
|
||||
|
||||
#define PROTO(type, name, arglist) type name arglist
|
||||
#define EXFUN(name, proto) name proto
|
||||
#define DEFUN(name, arglist, args) name(args)
|
||||
#define DEFUN_VOID(name) name(void)
|
||||
#define AND ,
|
||||
#define DOTS , ...
|
||||
#define NOARGS void
|
||||
#endif /* ! IN_GCC */
|
||||
|
||||
#else /* Not ANSI C. */
|
||||
|
||||
#undef ANSI_PROTOTYPES
|
||||
#define PTR char *
|
||||
#define PTRCONST PTR
|
||||
#define LONG_DOUBLE double
|
||||
|
||||
#define PARAMS(args) ()
|
||||
#define VPARAMS(args) (va_alist) va_dcl
|
||||
#define VA_START(va_list, var) va_start(va_list)
|
||||
|
||||
#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP); { struct Qdmy
|
||||
#define VA_CLOSE(AP) } va_end(AP); }
|
||||
#define VA_FIXEDARG(AP, TYPE, NAME) TYPE NAME = va_arg(AP, TYPE)
|
||||
|
||||
/* some systems define these in header files for non-ansi mode */
|
||||
#undef const
|
||||
#undef volatile
|
||||
#undef signed
|
||||
#undef inline
|
||||
#define const
|
||||
#define volatile
|
||||
#define signed
|
||||
#define inline
|
||||
|
||||
#ifndef IN_GCC
|
||||
#define CONST
|
||||
#define VOLATILE
|
||||
#define SIGNED
|
||||
|
||||
#define PROTO(type, name, arglist) type name ()
|
||||
#define EXFUN(name, proto) name()
|
||||
#define DEFUN(name, arglist, args) name arglist args;
|
||||
#define DEFUN_VOID(name) name()
|
||||
#define AND ;
|
||||
#define DOTS
|
||||
#define NOARGS
|
||||
#endif /* ! IN_GCC */
|
||||
|
||||
#endif /* ANSI C. */
|
||||
|
||||
/* Define macros for some gcc attributes. This permits us to use the
|
||||
macros freely, and know that they will come into play for the
|
||||
version of gcc in which they are supported. */
|
||||
|
||||
#if (GCC_VERSION < 2007)
|
||||
# define __attribute__(x)
|
||||
#endif
|
||||
|
||||
/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
|
||||
#ifndef ATTRIBUTE_MALLOC
|
||||
# if (GCC_VERSION >= 2096)
|
||||
# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
|
||||
# else
|
||||
# define ATTRIBUTE_MALLOC
|
||||
# endif /* GNUC >= 2.96 */
|
||||
#endif /* ATTRIBUTE_MALLOC */
|
||||
|
||||
/* Attributes on labels were valid as of gcc 2.93. */
|
||||
#ifndef ATTRIBUTE_UNUSED_LABEL
|
||||
# if (GCC_VERSION >= 2093)
|
||||
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
|
||||
# else
|
||||
# define ATTRIBUTE_UNUSED_LABEL
|
||||
# endif /* GNUC >= 2.93 */
|
||||
#endif /* ATTRIBUTE_UNUSED_LABEL */
|
||||
|
||||
#ifndef ATTRIBUTE_UNUSED
|
||||
#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
||||
#endif /* ATTRIBUTE_UNUSED */
|
||||
|
||||
#ifndef ATTRIBUTE_NORETURN
|
||||
#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
|
||||
#endif /* ATTRIBUTE_NORETURN */
|
||||
|
||||
#ifndef ATTRIBUTE_PRINTF
|
||||
#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
|
||||
#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
|
||||
#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
|
||||
#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
|
||||
#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
|
||||
#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
|
||||
#endif /* ATTRIBUTE_PRINTF */
|
||||
|
||||
/* We use __extension__ in some places to suppress -pedantic warnings
|
||||
about GCC extensions. This feature didn't work properly before
|
||||
gcc 2.8. */
|
||||
#if GCC_VERSION < 2008
|
||||
#define __extension__
|
||||
#endif
|
||||
|
||||
/* Bootstrap support: Adjust certain macros defined by Autoconf,
|
||||
which are only valid for the stage1 compiler. If we detect
|
||||
a modern version of GCC, we are probably in stage2 or beyond,
|
||||
so unconditionally reset the values. Note that const, inline,
|
||||
etc. have been dealt with above. */
|
||||
#if (GCC_VERSION >= 2007)
|
||||
# ifndef HAVE_LONG_DOUBLE
|
||||
# define HAVE_LONG_DOUBLE 1
|
||||
# endif
|
||||
#endif /* GCC >= 2.7 */
|
||||
|
||||
#endif /* ansidecl.h */
|
||||
71
TBE/MinGW/include/assert.h
Normal file
71
TBE/MinGW/include/assert.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* assert.h
|
||||
*
|
||||
* Define the assert macro for debug output.
|
||||
*
|
||||
* This file is part of the Mingw32 package.
|
||||
*
|
||||
* Contributors:
|
||||
* Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
|
||||
*
|
||||
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||
*
|
||||
* This source code is offered for use in the public domain. You may
|
||||
* use, modify or distribute it freely.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful but
|
||||
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||
* DISCLAIMED. This includes but is not limited to warranties of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* $Revision: 1.4 $
|
||||
* $Author: earnie $
|
||||
* $Date: 2003/02/21 21:19:51 $
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _ASSERT_H_
|
||||
#define _ASSERT_H_
|
||||
|
||||
/* All the headers include this file. */
|
||||
#include <_mingw.h>
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
|
||||
/*
|
||||
* If not debugging, assert does nothing.
|
||||
*/
|
||||
#define assert(x) ((void)0)
|
||||
|
||||
#else /* debugging enabled */
|
||||
|
||||
/*
|
||||
* CRTDLL nicely supplies a function which does the actual output and
|
||||
* call to abort.
|
||||
*/
|
||||
_CRTIMP void __cdecl _assert (const char*, const char*, int)
|
||||
#ifdef __GNUC__
|
||||
__attribute__ ((noreturn))
|
||||
#endif
|
||||
;
|
||||
|
||||
/*
|
||||
* Definition of the assert macro.
|
||||
*/
|
||||
#define assert(e) ((e) ? (void)0 : _assert(#e, __FILE__, __LINE__))
|
||||
#endif /* NDEBUG */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* Not RC_INVOKED */
|
||||
|
||||
#endif /* Not _ASSERT_H_ */
|
||||
|
||||
119
TBE/MinGW/include/basetsd.h
Normal file
119
TBE/MinGW/include/basetsd.h
Normal file
@@ -0,0 +1,119 @@
|
||||
#ifndef _BASETSD_H
|
||||
#define _BASETSD_H
|
||||
#if __GNUC__ >=3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
#ifndef __int64
|
||||
#define __int64 long long
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_WIN64)
|
||||
#define __int3264 __int64
|
||||
#define ADDRESS_TAG_BIT 0x40000000000UI64
|
||||
#else /* !_WIN64 */
|
||||
#define __int3264 __int32
|
||||
#define ADDRESS_TAG_BIT 0x80000000UL
|
||||
#define HandleToUlong( h ) ((ULONG)(ULONG_PTR)(h) )
|
||||
#define HandleToLong( h ) ((LONG)(LONG_PTR) (h) )
|
||||
#define LongToHandle( h) ((HANDLE)(LONG_PTR) (h))
|
||||
#define PtrToUlong( p ) ((ULONG)(ULONG_PTR) (p) )
|
||||
#define PtrToLong( p ) ((LONG)(LONG_PTR) (p) )
|
||||
#define PtrToUint( p ) ((UINT)(UINT_PTR) (p) )
|
||||
#define PtrToInt( p ) ((INT)(INT_PTR) (p) )
|
||||
#define PtrToUshort( p ) ((unsigned short)(ULONG_PTR)(p) )
|
||||
#define PtrToShort( p ) ((short)(LONG_PTR)(p) )
|
||||
#define IntToPtr( i ) ((VOID*)(INT_PTR)((int)i))
|
||||
#define UIntToPtr( ui ) ((VOID*)(UINT_PTR)((unsigned int)ui))
|
||||
#define LongToPtr( l ) ((VOID*)(LONG_PTR)((long)l))
|
||||
#define ULongToPtr( ul ) ((VOID*)(ULONG_PTR)((unsigned long)ul))
|
||||
#endif /* !_WIN64 */
|
||||
|
||||
#define UlongToPtr(ul) ULongToPtr(ul)
|
||||
#define UintToPtr(ui) UIntToPtr(ui)
|
||||
#define MAXUINT_PTR (~((UINT_PTR)0))
|
||||
#define MAXINT_PTR ((INT_PTR)(MAXUINT_PTR >> 1))
|
||||
#define MININT_PTR (~MAXINT_PTR)
|
||||
#define MAXULONG_PTR (~((ULONG_PTR)0))
|
||||
#define MAXLONG_PTR ((LONG_PTR)(MAXULONG_PTR >> 1))
|
||||
#define MINLONG_PTR (~MAXLONG_PTR)
|
||||
#define MAXUHALF_PTR ((UHALF_PTR)~0)
|
||||
#define MAXHALF_PTR ((HALF_PTR)(MAXUHALF_PTR >> 1))
|
||||
#define MINHALF_PTR (~MAXHALF_PTR)
|
||||
|
||||
#ifndef RC_INVOKED
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
typedef int LONG32, *PLONG32;
|
||||
#ifndef XFree86Server
|
||||
typedef int INT32, *PINT32;
|
||||
#endif /* ndef XFree86Server */
|
||||
typedef unsigned int ULONG32, *PULONG32;
|
||||
typedef unsigned int DWORD32, *PDWORD32;
|
||||
typedef unsigned int UINT32, *PUINT32;
|
||||
|
||||
#if defined(_WIN64)
|
||||
typedef __int64 INT_PTR, *PINT_PTR;
|
||||
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
|
||||
typedef __int64 LONG_PTR, *PLONG_PTR;
|
||||
typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
|
||||
typedef unsigned __int64 HANDLE_PTR;
|
||||
typedef unsigned int UHALF_PTR, *PUHALF_PTR;
|
||||
typedef int HALF_PTR, *PHALF_PTR;
|
||||
|
||||
#if 0 /* TODO when WIN64 is here */
|
||||
inline unsigned long HandleToUlong(const void* h )
|
||||
{ return((unsigned long) h ); }
|
||||
inline long HandleToLong( const void* h )
|
||||
{ return((long) h ); }
|
||||
inline void* LongToHandle( const long h )
|
||||
{ return((void*) (INT_PTR) h ); }
|
||||
inline unsigned long PtrToUlong( const void* p)
|
||||
{ return((unsigned long) p ); }
|
||||
inline unsigned int PtrToUint( const void* p )
|
||||
{ return((unsigned int) p ); }
|
||||
inline unsigned short PtrToUshort( const void* p )
|
||||
{ return((unsigned short) p ); }
|
||||
inline long PtrToLong( const void* p )
|
||||
{ return((long) p ); }
|
||||
inline int PtrToInt( const void* p )
|
||||
{ return((int) p ); }
|
||||
inline short PtrToShort( const void* p )
|
||||
{ return((short) p ); }
|
||||
inline void* IntToPtr( const int i )
|
||||
{ return( (void*)(INT_PTR)i ); }
|
||||
inline void* UIntToPtr(const unsigned int ui)
|
||||
{ return( (void*)(UINT_PTR)ui ); }
|
||||
inline void* LongToPtr( const long l )
|
||||
{ return( (void*)(LONG_PTR)l ); }
|
||||
inline void* ULongToPtr( const unsigned long ul )
|
||||
{ return( (void*)(ULONG_PTR)ul ); }
|
||||
#endif /* 0_ */
|
||||
|
||||
#else /* !_WIN64 */
|
||||
typedef int INT_PTR, *PINT_PTR;
|
||||
typedef unsigned int UINT_PTR, *PUINT_PTR;
|
||||
typedef long LONG_PTR, *PLONG_PTR;
|
||||
typedef unsigned long ULONG_PTR, *PULONG_PTR;
|
||||
typedef unsigned short UHALF_PTR, *PUHALF_PTR;
|
||||
typedef short HALF_PTR, *PHALF_PTR;
|
||||
typedef unsigned long HANDLE_PTR;
|
||||
#endif /* !_WIN64 */
|
||||
|
||||
typedef ULONG_PTR SIZE_T, *PSIZE_T;
|
||||
typedef LONG_PTR SSIZE_T, *PSSIZE_T;
|
||||
typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
|
||||
typedef __int64 LONG64, *PLONG64;
|
||||
typedef __int64 INT64, *PINT64;
|
||||
typedef unsigned __int64 ULONG64, *PULONG64;
|
||||
typedef unsigned __int64 DWORD64, *PDWORD64;
|
||||
typedef unsigned __int64 UINT64, *PUINT64;
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* !RC_INVOKED */
|
||||
|
||||
#endif /* _BASETSD_H */
|
||||
166
TBE/MinGW/include/basetyps.h
Normal file
166
TBE/MinGW/include/basetyps.h
Normal file
@@ -0,0 +1,166 @@
|
||||
#ifndef _BASETYPS_H
|
||||
#define _BASETYPS_H
|
||||
#if __GNUC__ >=3
|
||||
#pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#ifndef __OBJC__
|
||||
# ifdef __cplusplus
|
||||
# define EXTERN_C extern "C"
|
||||
# else
|
||||
# define EXTERN_C extern
|
||||
# endif /* __cplusplus */
|
||||
# ifndef __int64
|
||||
# define __int64 long long
|
||||
# endif
|
||||
# ifndef __int32
|
||||
# define __int32 long
|
||||
# endif
|
||||
# ifndef __int16
|
||||
# define __int16 int
|
||||
# endif
|
||||
# ifndef __int8
|
||||
# define __int8 char
|
||||
# endif
|
||||
# ifndef __small
|
||||
# define __small char
|
||||
# endif
|
||||
# ifndef __hyper
|
||||
# define __hyper long long
|
||||
# endif
|
||||
# define STDMETHODCALLTYPE __stdcall
|
||||
# define STDMETHODVCALLTYPE __cdecl
|
||||
# define STDAPICALLTYPE __stdcall
|
||||
# define STDAPIVCALLTYPE __cdecl
|
||||
# define STDAPI EXTERN_C HRESULT STDAPICALLTYPE
|
||||
# define STDAPI_(t) EXTERN_C t STDAPICALLTYPE
|
||||
# define STDMETHODIMP HRESULT STDMETHODCALLTYPE
|
||||
# define STDMETHODIMP_(t) t STDMETHODCALLTYPE
|
||||
# define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE
|
||||
# define STDAPIV_(t) EXTERN_C t STDAPIVCALLTYPE
|
||||
# define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
|
||||
# define STDMETHODIMPV_(t) t STDMETHODVCALLTYPE
|
||||
# define interface struct
|
||||
# if defined(__cplusplus) && !defined(CINTERFACE)
|
||||
# define STDMETHOD(m) virtual HRESULT STDMETHODCALLTYPE m
|
||||
# define STDMETHOD_(t,m) virtual t STDMETHODCALLTYPE m
|
||||
# define PURE =0
|
||||
# define THIS_
|
||||
# define THIS void
|
||||
/*
|
||||
__attribute__((com_interface)) is obsolete in __GNUC__ >= 3
|
||||
g++ vtables are now COM-compatible by default
|
||||
*/
|
||||
# if defined(__GNUC__) && __GNUC__ < 3 && !defined(NOCOMATTRIBUTE)
|
||||
# define DECLARE_INTERFACE(i) interface __attribute__((com_interface)) i
|
||||
# define DECLARE_INTERFACE_(i,b) interface __attribute__((com_interface)) i : public b
|
||||
# else
|
||||
# define DECLARE_INTERFACE(i) interface i
|
||||
# define DECLARE_INTERFACE_(i,b) interface i : public b
|
||||
# endif
|
||||
# else
|
||||
# define STDMETHOD(m) HRESULT(STDMETHODCALLTYPE *m)
|
||||
# define STDMETHOD_(t,m) t(STDMETHODCALLTYPE *m)
|
||||
# define PURE
|
||||
# define THIS_ INTERFACE *,
|
||||
# define THIS INTERFACE *
|
||||
# ifndef CONST_VTABLE
|
||||
# define CONST_VTABLE
|
||||
# endif
|
||||
# define DECLARE_INTERFACE(i) \
|
||||
typedef interface i { CONST_VTABLE struct i##Vtbl *lpVtbl; } i; \
|
||||
typedef CONST_VTABLE struct i##Vtbl i##Vtbl; \
|
||||
CONST_VTABLE struct i##Vtbl
|
||||
# define DECLARE_INTERFACE_(i,b) DECLARE_INTERFACE(i)
|
||||
# endif
|
||||
# define BEGIN_INTERFACE
|
||||
# define END_INTERFACE
|
||||
|
||||
# define FWD_DECL(i) typedef interface i i
|
||||
# if defined(__cplusplus) && !defined(CINTERFACE)
|
||||
# define IENUM_THIS(T)
|
||||
# define IENUM_THIS_(T)
|
||||
# else
|
||||
# define IENUM_THIS(T) T*
|
||||
# define IENUM_THIS_(T) T*,
|
||||
# endif
|
||||
# define DECLARE_ENUMERATOR_(I,T) \
|
||||
DECLARE_INTERFACE_(I,IUnknown) \
|
||||
{ \
|
||||
STDMETHOD(QueryInterface)(IENUM_THIS_(I) REFIID,PVOID*) PURE; \
|
||||
STDMETHOD_(ULONG,AddRef)(IENUM_THIS(I)) PURE; \
|
||||
STDMETHOD_(ULONG,Release)(IENUM_THIS(I)) PURE; \
|
||||
STDMETHOD(Next)(IENUM_THIS_(I) ULONG,T*,ULONG*) PURE; \
|
||||
STDMETHOD(Skip)(IENUM_THIS_(I) ULONG) PURE; \
|
||||
STDMETHOD(Reset)(IENUM_THIS(I)) PURE; \
|
||||
STDMETHOD(Clone)(IENUM_THIS_(I) I**) PURE; \
|
||||
}
|
||||
# define DECLARE_ENUMERATOR(T) DECLARE_ENUMERATOR_(IEnum##T,T)
|
||||
|
||||
#endif /* __OBJC__ */
|
||||
|
||||
#ifdef _GUID_DEFINED
|
||||
# warning _GUID_DEFINED is deprecated, use GUID_DEFINED instead
|
||||
#endif
|
||||
|
||||
#if ! (defined _GUID_DEFINED || defined GUID_DEFINED) /* also defined in winnt.h */
|
||||
#define GUID_DEFINED
|
||||
typedef struct _GUID
|
||||
{
|
||||
unsigned long Data1;
|
||||
unsigned short Data2;
|
||||
unsigned short Data3;
|
||||
unsigned char Data4[8];
|
||||
} GUID,*REFGUID,*LPGUID;
|
||||
#endif /* GUID_DEFINED */
|
||||
#ifndef UUID_DEFINED
|
||||
#define UUID_DEFINED
|
||||
typedef GUID UUID;
|
||||
#endif /* UUID_DEFINED */
|
||||
typedef GUID IID;
|
||||
typedef GUID CLSID;
|
||||
typedef CLSID *LPCLSID;
|
||||
typedef IID *LPIID;
|
||||
typedef IID *REFIID;
|
||||
typedef CLSID *REFCLSID;
|
||||
typedef GUID FMTID;
|
||||
typedef FMTID *REFFMTID;
|
||||
typedef unsigned long error_status_t;
|
||||
#define uuid_t UUID
|
||||
typedef unsigned long PROPID;
|
||||
|
||||
#ifndef _REFGUID_DEFINED
|
||||
#if defined (__cplusplus) && !defined (CINTERFACE)
|
||||
#define REFGUID const GUID&
|
||||
#define REFIID const IID&
|
||||
#define REFCLSID const CLSID&
|
||||
#else
|
||||
#define REFGUID const GUID* const
|
||||
#define REFIID const IID* const
|
||||
#define REFCLSID const CLSID* const
|
||||
#endif
|
||||
#define _REFGUID_DEFINED
|
||||
#define _REFGIID_DEFINED
|
||||
#define _REFCLSID_DEFINED
|
||||
#endif
|
||||
#ifndef GUID_SECTION
|
||||
#define GUID_SECTION ".text"
|
||||
#endif
|
||||
#ifdef __GNUC__
|
||||
#define GUID_SECT __attribute__ ((section (GUID_SECTION)))
|
||||
#else
|
||||
#define GUID_SECT
|
||||
#endif
|
||||
#if !defined(INITGUID) || (defined(INITGUID) && defined(__cplusplus))
|
||||
#define GUID_EXT EXTERN_C
|
||||
#else
|
||||
#define GUID_EXT
|
||||
#endif
|
||||
#ifdef INITGUID
|
||||
#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n GUID_SECT = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
|
||||
#define DEFINE_OLEGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
|
||||
#else
|
||||
#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n
|
||||
#define DEFINE_OLEGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
|
||||
#endif
|
||||
#endif
|
||||
4239
TBE/MinGW/include/bfd.h
Normal file
4239
TBE/MinGW/include/bfd.h
Normal file
File diff suppressed because it is too large
Load Diff
638
TBE/MinGW/include/bfdlink.h
Normal file
638
TBE/MinGW/include/bfdlink.h
Normal file
@@ -0,0 +1,638 @@
|
||||
/* bfdlink.h -- header file for BFD link routines
|
||||
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002
|
||||
Free Software Foundation, Inc.
|
||||
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef BFDLINK_H
|
||||
#define BFDLINK_H
|
||||
|
||||
/* Which symbols to strip during a link. */
|
||||
enum bfd_link_strip
|
||||
{
|
||||
strip_none, /* Don't strip any symbols. */
|
||||
strip_debugger, /* Strip debugging symbols. */
|
||||
strip_some, /* keep_hash is the list of symbols to keep. */
|
||||
strip_all /* Strip all symbols. */
|
||||
};
|
||||
|
||||
/* Which local symbols to discard during a link. This is irrelevant
|
||||
if strip_all is used. */
|
||||
enum bfd_link_discard
|
||||
{
|
||||
discard_sec_merge, /* Discard local temporary symbols in SEC_MERGE
|
||||
sections. */
|
||||
discard_none, /* Don't discard any locals. */
|
||||
discard_l, /* Discard local temporary symbols. */
|
||||
discard_all /* Discard all locals. */
|
||||
};
|
||||
|
||||
/* Describes the type of hash table entry structure being used.
|
||||
Different hash table structure have different fields and so
|
||||
support different linking features. */
|
||||
enum bfd_link_hash_table_type
|
||||
{
|
||||
bfd_link_generic_hash_table,
|
||||
bfd_link_elf_hash_table
|
||||
};
|
||||
|
||||
/* These are the possible types of an entry in the BFD link hash
|
||||
table. */
|
||||
|
||||
enum bfd_link_hash_type
|
||||
{
|
||||
bfd_link_hash_new, /* Symbol is new. */
|
||||
bfd_link_hash_undefined, /* Symbol seen before, but undefined. */
|
||||
bfd_link_hash_undefweak, /* Symbol is weak and undefined. */
|
||||
bfd_link_hash_defined, /* Symbol is defined. */
|
||||
bfd_link_hash_defweak, /* Symbol is weak and defined. */
|
||||
bfd_link_hash_common, /* Symbol is common. */
|
||||
bfd_link_hash_indirect, /* Symbol is an indirect link. */
|
||||
bfd_link_hash_warning /* Like indirect, but warn if referenced. */
|
||||
};
|
||||
|
||||
enum bfd_link_common_skip_ar_aymbols
|
||||
{
|
||||
bfd_link_common_skip_none,
|
||||
bfd_link_common_skip_text,
|
||||
bfd_link_common_skip_data,
|
||||
bfd_link_common_skip_all
|
||||
};
|
||||
|
||||
/* The linking routines use a hash table which uses this structure for
|
||||
its elements. */
|
||||
|
||||
struct bfd_link_hash_entry
|
||||
{
|
||||
/* Base hash table entry structure. */
|
||||
struct bfd_hash_entry root;
|
||||
/* Type of this entry. */
|
||||
enum bfd_link_hash_type type;
|
||||
|
||||
/* Undefined and common symbols are kept in a linked list through
|
||||
this field. This field is not in the union because that would
|
||||
force us to remove entries from the list when we changed their
|
||||
type, which would force the list to be doubly linked, which would
|
||||
waste more memory. When an undefined or common symbol is
|
||||
created, it should be added to this list, the head of which is in
|
||||
the link hash table itself. As symbols are defined, they need
|
||||
not be removed from the list; anything which reads the list must
|
||||
doublecheck the symbol type.
|
||||
|
||||
Weak symbols are not kept on this list.
|
||||
|
||||
Defined and defweak symbols use this field as a reference marker.
|
||||
If the field is not NULL, or this structure is the tail of the
|
||||
undefined symbol list, the symbol has been referenced. If the
|
||||
symbol is undefined and becomes defined, this field will
|
||||
automatically be non-NULL since the symbol will have been on the
|
||||
undefined symbol list. */
|
||||
struct bfd_link_hash_entry *next;
|
||||
/* A union of information depending upon the type. */
|
||||
union
|
||||
{
|
||||
/* Nothing is kept for bfd_hash_new. */
|
||||
/* bfd_link_hash_undefined, bfd_link_hash_undefweak. */
|
||||
struct
|
||||
{
|
||||
bfd *abfd; /* BFD symbol was found in. */
|
||||
} undef;
|
||||
/* bfd_link_hash_defined, bfd_link_hash_defweak. */
|
||||
struct
|
||||
{
|
||||
bfd_vma value; /* Symbol value. */
|
||||
asection *section; /* Symbol section. */
|
||||
} def;
|
||||
/* bfd_link_hash_indirect, bfd_link_hash_warning. */
|
||||
struct
|
||||
{
|
||||
struct bfd_link_hash_entry *link; /* Real symbol. */
|
||||
const char *warning; /* Warning (bfd_link_hash_warning only). */
|
||||
} i;
|
||||
/* bfd_link_hash_common. */
|
||||
struct
|
||||
{
|
||||
/* The linker needs to know three things about common
|
||||
symbols: the size, the alignment, and the section in
|
||||
which the symbol should be placed. We store the size
|
||||
here, and we allocate a small structure to hold the
|
||||
section and the alignment. The alignment is stored as a
|
||||
power of two. We don't store all the information
|
||||
directly because we don't want to increase the size of
|
||||
the union; this structure is a major space user in the
|
||||
linker. */
|
||||
bfd_size_type size; /* Common symbol size. */
|
||||
struct bfd_link_hash_common_entry
|
||||
{
|
||||
unsigned int alignment_power; /* Alignment. */
|
||||
asection *section; /* Symbol section. */
|
||||
} *p;
|
||||
} c;
|
||||
} u;
|
||||
};
|
||||
|
||||
/* This is the link hash table. It is a derived class of
|
||||
bfd_hash_table. */
|
||||
|
||||
struct bfd_link_hash_table
|
||||
{
|
||||
/* The hash table itself. */
|
||||
struct bfd_hash_table table;
|
||||
/* The back end which created this hash table. This indicates the
|
||||
type of the entries in the hash table, which is sometimes
|
||||
important information when linking object files of different
|
||||
types together. */
|
||||
const bfd_target *creator;
|
||||
/* A linked list of undefined and common symbols, linked through the
|
||||
next field in the bfd_link_hash_entry structure. */
|
||||
struct bfd_link_hash_entry *undefs;
|
||||
/* Entries are added to the tail of the undefs list. */
|
||||
struct bfd_link_hash_entry *undefs_tail;
|
||||
/* The type of the ink hash table. */
|
||||
enum bfd_link_hash_table_type type;
|
||||
};
|
||||
|
||||
/* Look up an entry in a link hash table. If FOLLOW is TRUE, this
|
||||
follows bfd_link_hash_indirect and bfd_link_hash_warning links to
|
||||
the real symbol. */
|
||||
extern struct bfd_link_hash_entry *bfd_link_hash_lookup
|
||||
PARAMS ((struct bfd_link_hash_table *, const char *, bfd_boolean create,
|
||||
bfd_boolean copy, bfd_boolean follow));
|
||||
|
||||
/* Look up an entry in the main linker hash table if the symbol might
|
||||
be wrapped. This should only be used for references to an
|
||||
undefined symbol, not for definitions of a symbol. */
|
||||
|
||||
extern struct bfd_link_hash_entry *bfd_wrapped_link_hash_lookup
|
||||
PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean,
|
||||
bfd_boolean, bfd_boolean));
|
||||
|
||||
/* Traverse a link hash table. */
|
||||
extern void bfd_link_hash_traverse
|
||||
PARAMS ((struct bfd_link_hash_table *,
|
||||
bfd_boolean (*) (struct bfd_link_hash_entry *, PTR),
|
||||
PTR));
|
||||
|
||||
/* Add an entry to the undefs list. */
|
||||
extern void bfd_link_add_undef
|
||||
PARAMS ((struct bfd_link_hash_table *, struct bfd_link_hash_entry *));
|
||||
|
||||
struct bfd_sym_chain
|
||||
{
|
||||
struct bfd_sym_chain *next;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
/* This structure holds all the information needed to communicate
|
||||
between BFD and the linker when doing a link. */
|
||||
|
||||
struct bfd_link_info
|
||||
{
|
||||
/* TRUE if BFD should generate a relocatable object file. */
|
||||
unsigned int relocateable: 1;
|
||||
|
||||
/* TRUE if BFD should generate relocation information in the final
|
||||
executable. */
|
||||
unsigned int emitrelocations: 1;
|
||||
|
||||
/* TRUE if BFD should generate a "task linked" object file,
|
||||
similar to relocatable but also with globals converted to
|
||||
statics. */
|
||||
unsigned int task_link: 1;
|
||||
|
||||
/* TRUE if BFD should generate a shared object. */
|
||||
unsigned int shared: 1;
|
||||
|
||||
/* TRUE if BFD should pre-bind symbols in a shared object. */
|
||||
unsigned int symbolic: 1;
|
||||
|
||||
/* TRUE if BFD should export all symbols in the dynamic symbol table
|
||||
of an executable, rather than only those used. */
|
||||
unsigned int export_dynamic: 1;
|
||||
|
||||
/* TRUE if shared objects should be linked directly, not shared. */
|
||||
unsigned int static_link: 1;
|
||||
|
||||
/* TRUE if the output file should be in a traditional format. This
|
||||
is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag
|
||||
on the output file, but may be checked when reading the input
|
||||
files. */
|
||||
unsigned int traditional_format: 1;
|
||||
|
||||
/* TRUE if we want to produced optimized output files. This might
|
||||
need much more time and therefore must be explicitly selected. */
|
||||
unsigned int optimize: 1;
|
||||
|
||||
/* TRUE if BFD should generate errors for undefined symbols
|
||||
even if generating a shared object. */
|
||||
unsigned int no_undefined: 1;
|
||||
|
||||
/* TRUE if BFD should allow undefined symbols in shared objects even
|
||||
when no_undefined is set to disallow undefined symbols. The net
|
||||
result will be that undefined symbols in regular objects will
|
||||
still trigger an error, but undefined symbols in shared objects
|
||||
will be ignored. The implementation of no_undefined makes the
|
||||
assumption that the runtime linker will choke on undefined
|
||||
symbols. However there is at least one system (BeOS) where
|
||||
undefined symbols in shared libraries is normal since the kernel
|
||||
patches them at load time to select which function is most
|
||||
appropriate for the current architecture. I.E. dynamically
|
||||
select an appropriate memset function. Apparently it is also
|
||||
normal for HPPA shared libraries to have undefined symbols. */
|
||||
unsigned int allow_shlib_undefined: 1;
|
||||
|
||||
/* TRUE if ok to have multiple definition. */
|
||||
unsigned int allow_multiple_definition: 1;
|
||||
|
||||
/* TRUE if ok to have version with no definition. */
|
||||
unsigned int allow_undefined_version: 1;
|
||||
|
||||
/* TRUE if symbols should be retained in memory, FALSE if they
|
||||
should be freed and reread. */
|
||||
unsigned int keep_memory: 1;
|
||||
|
||||
/* TRUE if every symbol should be reported back via the notice
|
||||
callback. */
|
||||
unsigned int notice_all: 1;
|
||||
|
||||
/* TRUE if executable should not contain copy relocs.
|
||||
Setting this true may result in a non-sharable text segment. */
|
||||
unsigned int nocopyreloc: 1;
|
||||
|
||||
/* TRUE if the new ELF dynamic tags are enabled. */
|
||||
unsigned int new_dtags: 1;
|
||||
|
||||
/* TRUE if non-PLT relocs should be merged into one reloc section
|
||||
and sorted so that relocs against the same symbol come together. */
|
||||
unsigned int combreloc: 1;
|
||||
|
||||
/* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
|
||||
should be created. */
|
||||
unsigned int eh_frame_hdr: 1;
|
||||
|
||||
/* TRUE if global symbols in discarded sections should be stripped. */
|
||||
unsigned int strip_discarded: 1;
|
||||
|
||||
/* Which symbols to strip. */
|
||||
enum bfd_link_strip strip;
|
||||
|
||||
/* Which local symbols to discard. */
|
||||
enum bfd_link_discard discard;
|
||||
|
||||
/* Criteria for skipping symbols when detemining
|
||||
whether to include an object from an archive. */
|
||||
enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols;
|
||||
|
||||
/* Function callbacks. */
|
||||
const struct bfd_link_callbacks *callbacks;
|
||||
|
||||
/* Hash table handled by BFD. */
|
||||
struct bfd_link_hash_table *hash;
|
||||
|
||||
/* Hash table of symbols to keep. This is NULL unless strip is
|
||||
strip_some. */
|
||||
struct bfd_hash_table *keep_hash;
|
||||
|
||||
/* Hash table of symbols to report back via the notice callback. If
|
||||
this is NULL, and notice_all is FALSE, then no symbols are
|
||||
reported back. */
|
||||
struct bfd_hash_table *notice_hash;
|
||||
|
||||
/* Hash table of symbols which are being wrapped (the --wrap linker
|
||||
option). If this is NULL, no symbols are being wrapped. */
|
||||
struct bfd_hash_table *wrap_hash;
|
||||
|
||||
/* The list of input BFD's involved in the link. These are chained
|
||||
together via the link_next field. */
|
||||
bfd *input_bfds;
|
||||
|
||||
/* If a symbol should be created for each input BFD, this is section
|
||||
where those symbols should be placed. It must be a section in
|
||||
the output BFD. It may be NULL, in which case no such symbols
|
||||
will be created. This is to support CREATE_OBJECT_SYMBOLS in the
|
||||
linker command language. */
|
||||
asection *create_object_symbols_section;
|
||||
|
||||
/* List of global symbol names that are starting points for marking
|
||||
sections against garbage collection. */
|
||||
struct bfd_sym_chain *gc_sym_list;
|
||||
|
||||
/* If a base output file is wanted, then this points to it */
|
||||
PTR base_file;
|
||||
|
||||
/* The function to call when the executable or shared object is
|
||||
loaded. */
|
||||
const char *init_function;
|
||||
|
||||
/* The function to call when the executable or shared object is
|
||||
unloaded. */
|
||||
const char *fini_function;
|
||||
|
||||
/* If non-zero, specifies that branches which are problematic for the
|
||||
MPC860 C0 (or earlier) should be checked for and modified. It gives the
|
||||
number of bytes that should be checked at the end of each text page. */
|
||||
int mpc860c0;
|
||||
|
||||
/* Non-zero if auto-import thunks for DATA items in pei386 DLLs
|
||||
should be generated/linked against. Set to 1 if this feature
|
||||
is explicitly requested by the user, -1 if enabled by default. */
|
||||
int pei386_auto_import;
|
||||
|
||||
/* Non-zero if runtime relocs for DATA items with non-zero addends
|
||||
in pei386 DLLs should be generated. Set to 1 if this feature
|
||||
is explicitly requested by the user, -1 if enabled by default. */
|
||||
int pei386_runtime_pseudo_reloc;
|
||||
|
||||
/* How many spare .dynamic DT_NULL entries should be added? */
|
||||
unsigned int spare_dynamic_tags;
|
||||
|
||||
/* May be used to set DT_FLAGS for ELF. */
|
||||
bfd_vma flags;
|
||||
|
||||
/* May be used to set DT_FLAGS_1 for ELF. */
|
||||
bfd_vma flags_1;
|
||||
};
|
||||
|
||||
/* This structures holds a set of callback functions. These are
|
||||
called by the BFD linker routines. The first argument to each
|
||||
callback function is the bfd_link_info structure being used. Each
|
||||
function returns a boolean value. If the function returns FALSE,
|
||||
then the BFD function which called it will return with a failure
|
||||
indication. */
|
||||
|
||||
struct bfd_link_callbacks
|
||||
{
|
||||
/* A function which is called when an object is added from an
|
||||
archive. ABFD is the archive element being added. NAME is the
|
||||
name of the symbol which caused the archive element to be pulled
|
||||
in. */
|
||||
bfd_boolean (*add_archive_element)
|
||||
PARAMS ((struct bfd_link_info *, bfd *abfd, const char *name));
|
||||
/* A function which is called when a symbol is found with multiple
|
||||
definitions. NAME is the symbol which is defined multiple times.
|
||||
OBFD is the old BFD, OSEC is the old section, OVAL is the old
|
||||
value, NBFD is the new BFD, NSEC is the new section, and NVAL is
|
||||
the new value. OBFD may be NULL. OSEC and NSEC may be
|
||||
bfd_com_section or bfd_ind_section. */
|
||||
bfd_boolean (*multiple_definition)
|
||||
PARAMS ((struct bfd_link_info *, const char *name,
|
||||
bfd *obfd, asection *osec, bfd_vma oval,
|
||||
bfd *nbfd, asection *nsec, bfd_vma nval));
|
||||
/* A function which is called when a common symbol is defined
|
||||
multiple times. NAME is the symbol appearing multiple times.
|
||||
OBFD is the BFD of the existing symbol; it may be NULL if this is
|
||||
not known. OTYPE is the type of the existing symbol, which may
|
||||
be bfd_link_hash_defined, bfd_link_hash_defweak,
|
||||
bfd_link_hash_common, or bfd_link_hash_indirect. If OTYPE is
|
||||
bfd_link_hash_common, OSIZE is the size of the existing symbol.
|
||||
NBFD is the BFD of the new symbol. NTYPE is the type of the new
|
||||
symbol, one of bfd_link_hash_defined, bfd_link_hash_common, or
|
||||
bfd_link_hash_indirect. If NTYPE is bfd_link_hash_common, NSIZE
|
||||
is the size of the new symbol. */
|
||||
bfd_boolean (*multiple_common)
|
||||
PARAMS ((struct bfd_link_info *, const char *name,
|
||||
bfd *obfd, enum bfd_link_hash_type otype, bfd_vma osize,
|
||||
bfd *nbfd, enum bfd_link_hash_type ntype, bfd_vma nsize));
|
||||
/* A function which is called to add a symbol to a set. ENTRY is
|
||||
the link hash table entry for the set itself (e.g.,
|
||||
__CTOR_LIST__). RELOC is the relocation to use for an entry in
|
||||
the set when generating a relocateable file, and is also used to
|
||||
get the size of the entry when generating an executable file.
|
||||
ABFD, SEC and VALUE identify the value to add to the set. */
|
||||
bfd_boolean (*add_to_set)
|
||||
PARAMS ((struct bfd_link_info *, struct bfd_link_hash_entry *entry,
|
||||
bfd_reloc_code_real_type reloc, bfd *abfd, asection *sec,
|
||||
bfd_vma value));
|
||||
/* A function which is called when the name of a g++ constructor or
|
||||
destructor is found. This is only called by some object file
|
||||
formats. CONSTRUCTOR is TRUE for a constructor, FALSE for a
|
||||
destructor. This will use BFD_RELOC_CTOR when generating a
|
||||
relocateable file. NAME is the name of the symbol found. ABFD,
|
||||
SECTION and VALUE are the value of the symbol. */
|
||||
bfd_boolean (*constructor)
|
||||
PARAMS ((struct bfd_link_info *, bfd_boolean constructor,
|
||||
const char *name, bfd *abfd, asection *sec, bfd_vma value));
|
||||
/* A function which is called to issue a linker warning. For
|
||||
example, this is called when there is a reference to a warning
|
||||
symbol. WARNING is the warning to be issued. SYMBOL is the name
|
||||
of the symbol which triggered the warning; it may be NULL if
|
||||
there is none. ABFD, SECTION and ADDRESS identify the location
|
||||
which trigerred the warning; either ABFD or SECTION or both may
|
||||
be NULL if the location is not known. */
|
||||
bfd_boolean (*warning)
|
||||
PARAMS ((struct bfd_link_info *, const char *warning, const char *symbol,
|
||||
bfd *abfd, asection *section, bfd_vma address));
|
||||
/* A function which is called when a relocation is attempted against
|
||||
an undefined symbol. NAME is the symbol which is undefined.
|
||||
ABFD, SECTION and ADDRESS identify the location from which the
|
||||
reference is made. FATAL indicates whether an undefined symbol is
|
||||
a fatal error or not. In some cases SECTION may be NULL. */
|
||||
bfd_boolean (*undefined_symbol)
|
||||
PARAMS ((struct bfd_link_info *, const char *name, bfd *abfd,
|
||||
asection *section, bfd_vma address, bfd_boolean fatal));
|
||||
/* A function which is called when a reloc overflow occurs. NAME is
|
||||
the name of the symbol or section the reloc is against,
|
||||
RELOC_NAME is the name of the relocation, and ADDEND is any
|
||||
addend that is used. ABFD, SECTION and ADDRESS identify the
|
||||
location at which the overflow occurs; if this is the result of a
|
||||
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
|
||||
ABFD will be NULL. */
|
||||
bfd_boolean (*reloc_overflow)
|
||||
PARAMS ((struct bfd_link_info *, const char *name, const char *reloc_name,
|
||||
bfd_vma addend, bfd *abfd, asection *section, bfd_vma address));
|
||||
/* A function which is called when a dangerous reloc is performed.
|
||||
The canonical example is an a29k IHCONST reloc which does not
|
||||
follow an IHIHALF reloc. MESSAGE is an appropriate message.
|
||||
ABFD, SECTION and ADDRESS identify the location at which the
|
||||
problem occurred; if this is the result of a
|
||||
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
|
||||
ABFD will be NULL. */
|
||||
bfd_boolean (*reloc_dangerous)
|
||||
PARAMS ((struct bfd_link_info *, const char *message,
|
||||
bfd *abfd, asection *section, bfd_vma address));
|
||||
/* A function which is called when a reloc is found to be attached
|
||||
to a symbol which is not being written out. NAME is the name of
|
||||
the symbol. ABFD, SECTION and ADDRESS identify the location of
|
||||
the reloc; if this is the result of a
|
||||
bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then
|
||||
ABFD will be NULL. */
|
||||
bfd_boolean (*unattached_reloc)
|
||||
PARAMS ((struct bfd_link_info *, const char *name,
|
||||
bfd *abfd, asection *section, bfd_vma address));
|
||||
/* A function which is called when a symbol in notice_hash is
|
||||
defined or referenced. NAME is the symbol. ABFD, SECTION and
|
||||
ADDRESS are the value of the symbol. If SECTION is
|
||||
bfd_und_section, this is a reference. */
|
||||
bfd_boolean (*notice)
|
||||
PARAMS ((struct bfd_link_info *, const char *name,
|
||||
bfd *abfd, asection *section, bfd_vma address));
|
||||
};
|
||||
|
||||
/* The linker builds link_order structures which tell the code how to
|
||||
include input data in the output file. */
|
||||
|
||||
/* These are the types of link_order structures. */
|
||||
|
||||
enum bfd_link_order_type
|
||||
{
|
||||
bfd_undefined_link_order, /* Undefined. */
|
||||
bfd_indirect_link_order, /* Built from a section. */
|
||||
bfd_data_link_order, /* Set to explicit data. */
|
||||
bfd_section_reloc_link_order, /* Relocate against a section. */
|
||||
bfd_symbol_reloc_link_order /* Relocate against a symbol. */
|
||||
};
|
||||
|
||||
/* This is the link_order structure itself. These form a chain
|
||||
attached to the section whose contents they are describing. */
|
||||
|
||||
struct bfd_link_order
|
||||
{
|
||||
/* Next link_order in chain. */
|
||||
struct bfd_link_order *next;
|
||||
/* Type of link_order. */
|
||||
enum bfd_link_order_type type;
|
||||
/* Offset within output section. */
|
||||
bfd_vma offset;
|
||||
/* Size within output section. */
|
||||
bfd_size_type size;
|
||||
/* Type specific information. */
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
/* Section to include. If this is used, then
|
||||
section->output_section must be the section the
|
||||
link_order is attached to, section->output_offset must
|
||||
equal the link_order offset field, and section->_raw_size
|
||||
must equal the link_order size field. Maybe these
|
||||
restrictions should be relaxed someday. */
|
||||
asection *section;
|
||||
} indirect;
|
||||
struct
|
||||
{
|
||||
/* Size of contents, or zero when contents size == size
|
||||
within output section.
|
||||
A non-zero value allows filling of the output section
|
||||
with an arbitrary repeated pattern. */
|
||||
unsigned int size;
|
||||
/* Data to put into file. */
|
||||
bfd_byte *contents;
|
||||
} data;
|
||||
struct
|
||||
{
|
||||
/* Description of reloc to generate. Used for
|
||||
bfd_section_reloc_link_order and
|
||||
bfd_symbol_reloc_link_order. */
|
||||
struct bfd_link_order_reloc *p;
|
||||
} reloc;
|
||||
} u;
|
||||
};
|
||||
|
||||
/* A linker order of type bfd_section_reloc_link_order or
|
||||
bfd_symbol_reloc_link_order means to create a reloc against a
|
||||
section or symbol, respectively. This is used to implement -Ur to
|
||||
generate relocs for the constructor tables. The
|
||||
bfd_link_order_reloc structure describes the reloc that BFD should
|
||||
create. It is similar to a arelent, but I didn't use arelent
|
||||
because the linker does not know anything about most symbols, and
|
||||
any asymbol structure it creates will be partially meaningless.
|
||||
This information could logically be in the bfd_link_order struct,
|
||||
but I didn't want to waste the space since these types of relocs
|
||||
are relatively rare. */
|
||||
|
||||
struct bfd_link_order_reloc
|
||||
{
|
||||
/* Reloc type. */
|
||||
bfd_reloc_code_real_type reloc;
|
||||
|
||||
union
|
||||
{
|
||||
/* For type bfd_section_reloc_link_order, this is the section
|
||||
the reloc should be against. This must be a section in the
|
||||
output BFD, not any of the input BFDs. */
|
||||
asection *section;
|
||||
/* For type bfd_symbol_reloc_link_order, this is the name of the
|
||||
symbol the reloc should be against. */
|
||||
const char *name;
|
||||
} u;
|
||||
|
||||
/* Addend to use. The object file should contain zero. The BFD
|
||||
backend is responsible for filling in the contents of the object
|
||||
file correctly. For some object file formats (e.g., COFF) the
|
||||
addend must be stored into in the object file, and for some
|
||||
(e.g., SPARC a.out) it is kept in the reloc. */
|
||||
bfd_vma addend;
|
||||
};
|
||||
|
||||
/* Allocate a new link_order for a section. */
|
||||
extern struct bfd_link_order *bfd_new_link_order PARAMS ((bfd *, asection *));
|
||||
|
||||
/* These structures are used to describe version information for the
|
||||
ELF linker. These structures could be manipulated entirely inside
|
||||
BFD, but it would be a pain. Instead, the regular linker sets up
|
||||
these structures, and then passes them into BFD. */
|
||||
|
||||
/* Regular expressions for a version. */
|
||||
|
||||
struct bfd_elf_version_expr
|
||||
{
|
||||
/* Next regular expression for this version. */
|
||||
struct bfd_elf_version_expr *next;
|
||||
/* Regular expression. */
|
||||
const char *pattern;
|
||||
/* Matching function. */
|
||||
int (*match) PARAMS ((struct bfd_elf_version_expr *, const char *));
|
||||
/* Defined by ".symver". */
|
||||
unsigned int symver: 1;
|
||||
/* Defined by version script. */
|
||||
unsigned int script : 1;
|
||||
};
|
||||
|
||||
/* Version dependencies. */
|
||||
|
||||
struct bfd_elf_version_deps
|
||||
{
|
||||
/* Next dependency for this version. */
|
||||
struct bfd_elf_version_deps *next;
|
||||
/* The version which this version depends upon. */
|
||||
struct bfd_elf_version_tree *version_needed;
|
||||
};
|
||||
|
||||
/* A node in the version tree. */
|
||||
|
||||
struct bfd_elf_version_tree
|
||||
{
|
||||
/* Next version. */
|
||||
struct bfd_elf_version_tree *next;
|
||||
/* Name of this version. */
|
||||
const char *name;
|
||||
/* Version number. */
|
||||
unsigned int vernum;
|
||||
/* Regular expressions for global symbols in this version. */
|
||||
struct bfd_elf_version_expr *globals;
|
||||
/* Regular expressions for local symbols in this version. */
|
||||
struct bfd_elf_version_expr *locals;
|
||||
/* List of versions which this version depends upon. */
|
||||
struct bfd_elf_version_deps *deps;
|
||||
/* Index of the version name. This is used within BFD. */
|
||||
unsigned int name_indx;
|
||||
/* Whether this version tree was used. This is used within BFD. */
|
||||
int used;
|
||||
};
|
||||
|
||||
#endif
|
||||
75
TBE/MinGW/include/c++/3.2.3/algorithm
Normal file
75
TBE/MinGW/include/c++/3.2.3/algorithm
Normal file
@@ -0,0 +1,75 @@
|
||||
// <algorithm> -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1996,1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
/** @file algorithm
|
||||
* This is a Standard C++ Library header. You should @c #include this header
|
||||
* in your programs, rather than any of the "st[dl]_*.h" implementation files.
|
||||
*/
|
||||
|
||||
#ifndef _CPP_ALGORITHM
|
||||
#define _CPP_ALGORITHM 1
|
||||
|
||||
#pragma GCC system_header
|
||||
|
||||
#include <bits/stl_algobase.h>
|
||||
#include <bits/stl_construct.h>
|
||||
#include <bits/stl_uninitialized.h>
|
||||
#include <bits/stl_algo.h>
|
||||
|
||||
#endif /* _CPP_ALGORITHM */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
149
TBE/MinGW/include/c++/3.2.3/backward/algo.h
Normal file
149
TBE/MinGW/include/c++/3.2.3/backward/algo.h
Normal file
@@ -0,0 +1,149 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1996,1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifndef _CPP_BACKWARD_ALGO_H
|
||||
#define _CPP_BACKWARD_ALGO_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include "algobase.h"
|
||||
#include "tempbuf.h"
|
||||
#include "iterator.h"
|
||||
#include <bits/stl_algo.h>
|
||||
#include <bits/stl_numeric.h>
|
||||
#include <ext/algorithm>
|
||||
#include <ext/numeric>
|
||||
|
||||
// Names from <stl_algo.h>
|
||||
using std::for_each;
|
||||
using std::find;
|
||||
using std::find_if;
|
||||
using std::adjacent_find;
|
||||
using std::count;
|
||||
using std::count_if;
|
||||
using std::search;
|
||||
using std::search_n;
|
||||
using std::swap_ranges;
|
||||
using std::transform;
|
||||
using std::replace;
|
||||
using std::replace_if;
|
||||
using std::replace_copy;
|
||||
using std::replace_copy_if;
|
||||
using std::generate;
|
||||
using std::generate_n;
|
||||
using std::remove;
|
||||
using std::remove_if;
|
||||
using std::remove_copy;
|
||||
using std::remove_copy_if;
|
||||
using std::unique;
|
||||
using std::unique_copy;
|
||||
using std::reverse;
|
||||
using std::reverse_copy;
|
||||
using std::rotate;
|
||||
using std::rotate_copy;
|
||||
using std::random_shuffle;
|
||||
using std::partition;
|
||||
using std::stable_partition;
|
||||
using std::sort;
|
||||
using std::stable_sort;
|
||||
using std::partial_sort;
|
||||
using std::partial_sort_copy;
|
||||
using std::nth_element;
|
||||
using std::lower_bound;
|
||||
using std::upper_bound;
|
||||
using std::equal_range;
|
||||
using std::binary_search;
|
||||
using std::merge;
|
||||
using std::inplace_merge;
|
||||
using std::includes;
|
||||
using std::set_union;
|
||||
using std::set_intersection;
|
||||
using std::set_difference;
|
||||
using std::set_symmetric_difference;
|
||||
using std::min_element;
|
||||
using std::max_element;
|
||||
using std::next_permutation;
|
||||
using std::prev_permutation;
|
||||
using std::find_first_of;
|
||||
using std::find_end;
|
||||
|
||||
// Names from stl_heap.h
|
||||
using std::push_heap;
|
||||
using std::pop_heap;
|
||||
using std::make_heap;
|
||||
using std::sort_heap;
|
||||
|
||||
// Names from stl_numeric.h
|
||||
using std::accumulate;
|
||||
using std::inner_product;
|
||||
using std::partial_sum;
|
||||
using std::adjacent_difference;
|
||||
|
||||
// Names from ext/algorithm
|
||||
using __gnu_cxx::random_sample;
|
||||
using __gnu_cxx::random_sample_n;
|
||||
using __gnu_cxx::is_sorted;
|
||||
using __gnu_cxx::is_heap;
|
||||
using __gnu_cxx::count; // Extension returning void
|
||||
using __gnu_cxx::count_if; // Extension returning void
|
||||
|
||||
// Names from ext/numeric
|
||||
using __gnu_cxx::power;
|
||||
using __gnu_cxx::iota;
|
||||
|
||||
#endif /* _CPP_BACKWARD_ALGO_H */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
95
TBE/MinGW/include/c++/3.2.3/backward/algobase.h
Normal file
95
TBE/MinGW/include/c++/3.2.3/backward/algobase.h
Normal file
@@ -0,0 +1,95 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
* Copyright (c) 1996,1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifndef _CPP_BACKWARD_ALGOBASE_H
|
||||
#define _CPP_BACKWARD_ALGOBASE_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include "pair.h"
|
||||
#include "iterator.h"
|
||||
#include <bits/stl_algobase.h>
|
||||
#include <bits/stl_uninitialized.h>
|
||||
#include <ext/algorithm>
|
||||
#include <ext/memory>
|
||||
|
||||
// Names from stl_algobase.h
|
||||
using std::iter_swap;
|
||||
using std::swap;
|
||||
using std::min;
|
||||
using std::max;
|
||||
using std::copy;
|
||||
using std::copy_backward;
|
||||
using std::fill;
|
||||
using std::fill_n;
|
||||
using std::mismatch;
|
||||
using std::equal;
|
||||
using std::lexicographical_compare;
|
||||
|
||||
// Names from stl_uninitialized.h
|
||||
using std::uninitialized_copy;
|
||||
using std::uninitialized_fill;
|
||||
using std::uninitialized_fill_n;
|
||||
|
||||
// Names from ext/algorithm
|
||||
using __gnu_cxx::copy_n;
|
||||
using __gnu_cxx::lexicographical_compare_3way;
|
||||
|
||||
// Names from ext/memory
|
||||
using __gnu_cxx::uninitialized_copy_n;
|
||||
|
||||
#endif /* _CPP_BACKWARD_ALGOBASE_H */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
58
TBE/MinGW/include/c++/3.2.3/backward/alloc.h
Normal file
58
TBE/MinGW/include/c++/3.2.3/backward/alloc.h
Normal file
@@ -0,0 +1,58 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996-1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifndef _CPP_BACKWARD_ALLOC_H
|
||||
#define _CPP_BACKWARD_ALLOC_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include <bits/c++config.h>
|
||||
#include <bits/stl_alloc.h>
|
||||
|
||||
using std::__malloc_alloc_template;
|
||||
using std::__simple_alloc;
|
||||
using std::__debug_alloc;
|
||||
using std::__alloc;
|
||||
using std::__single_client_alloc;
|
||||
using std::allocator;
|
||||
using std::__default_alloc_template;
|
||||
|
||||
#endif
|
||||
39
TBE/MinGW/include/c++/3.2.3/backward/backward_warning.h
Normal file
39
TBE/MinGW/include/c++/3.2.3/backward/backward_warning.h
Normal file
@@ -0,0 +1,39 @@
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#ifndef _CPP_BACKWARD_BACKWARD_WARNING_H
|
||||
#define _CPP_BACKWARD_BACKWARD_WARNING_H 1
|
||||
|
||||
#ifdef __DEPRECATED
|
||||
#warning This file includes at least one deprecated or antiquated header. \
|
||||
Please consider using one of the 32 headers found in section 17.4.1.2 of the \
|
||||
C++ standard. Examples include substituting the <X> header for the <X.h> \
|
||||
header for C++ includes, or <sstream> instead of the deprecated header \
|
||||
<strstream.h>. To disable this warning use -Wno-deprecated.
|
||||
#endif
|
||||
|
||||
#endif
|
||||
69
TBE/MinGW/include/c++/3.2.3/backward/bvector.h
Normal file
69
TBE/MinGW/include/c++/3.2.3/backward/bvector.h
Normal file
@@ -0,0 +1,69 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1996
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifndef __SGI_STL_BVECTOR_H
|
||||
#define __SGI_STL_BVECTOR_H
|
||||
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include <vector>
|
||||
|
||||
using std::bit_vector;
|
||||
|
||||
#endif /* __SGI_STL_BVECTOR_H */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
43
TBE/MinGW/include/c++/3.2.3/backward/complex.h
Normal file
43
TBE/MinGW/include/c++/3.2.3/backward/complex.h
Normal file
@@ -0,0 +1,43 @@
|
||||
// Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#ifndef _CPP_BACKWARD_COMPLEX_H
|
||||
#define _CPP_BACKWARD_COMPLEX_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include <complex>
|
||||
|
||||
using std::complex;
|
||||
typedef complex<float> float_complex;
|
||||
typedef complex<double> double_complex;
|
||||
typedef complex<long double> long_double_complex;
|
||||
|
||||
#endif
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
117
TBE/MinGW/include/c++/3.2.3/backward/defalloc.h
Normal file
117
TBE/MinGW/include/c++/3.2.3/backward/defalloc.h
Normal file
@@ -0,0 +1,117 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*/
|
||||
|
||||
// Inclusion of this file is DEPRECATED. This is the original HP
|
||||
// default allocator. It is provided only for backward compatibility.
|
||||
// This file WILL BE REMOVED in a future release.
|
||||
//
|
||||
// DO NOT USE THIS FILE unless you have an old container implementation
|
||||
// that requires an allocator with the HP-style interface.
|
||||
//
|
||||
// Standard-conforming allocators have a very different interface. The
|
||||
// standard default allocator is declared in the header <memory>.
|
||||
|
||||
#ifndef _CPP_BACKWARD_DEFALLOC_H
|
||||
#define _CPP_BACKWARD_DEFALLOC_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include "new.h"
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#include "iostream.h"
|
||||
#include "algobase.h"
|
||||
|
||||
|
||||
template <class _Tp>
|
||||
inline _Tp* allocate(ptrdiff_t __size, _Tp*) {
|
||||
set_new_handler(0);
|
||||
_Tp* __tmp = (_Tp*)(::operator new((size_t)(__size * sizeof(_Tp))));
|
||||
if (__tmp == 0) {
|
||||
cerr << "out of memory" << endl;
|
||||
exit(1);
|
||||
}
|
||||
return __tmp;
|
||||
}
|
||||
|
||||
|
||||
template <class _Tp>
|
||||
inline void deallocate(_Tp* __buffer) {
|
||||
::operator delete(__buffer);
|
||||
}
|
||||
|
||||
template <class _Tp>
|
||||
class allocator {
|
||||
public:
|
||||
typedef _Tp value_type;
|
||||
typedef _Tp* pointer;
|
||||
typedef const _Tp* const_pointer;
|
||||
typedef _Tp& reference;
|
||||
typedef const _Tp& const_reference;
|
||||
typedef size_t size_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
pointer allocate(size_type __n) {
|
||||
return ::allocate((difference_type)__n, (pointer)0);
|
||||
}
|
||||
void deallocate(pointer __p) { ::deallocate(__p); }
|
||||
pointer address(reference __x) { return (pointer)&__x; }
|
||||
const_pointer const_address(const_reference __x) {
|
||||
return (const_pointer)&__x;
|
||||
}
|
||||
size_type init_page_size() {
|
||||
return max(size_type(1), size_type(4096/sizeof(_Tp)));
|
||||
}
|
||||
size_type max_size() const {
|
||||
return max(size_type(1), size_type(UINT_MAX/sizeof(_Tp)));
|
||||
}
|
||||
};
|
||||
|
||||
class allocator<void> {
|
||||
public:
|
||||
typedef void* pointer;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* _CPP_BACKWARD_DEFALLOC_H */
|
||||
70
TBE/MinGW/include/c++/3.2.3/backward/deque.h
Normal file
70
TBE/MinGW/include/c++/3.2.3/backward/deque.h
Normal file
@@ -0,0 +1,70 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifndef _CPP_BACKWARD_DEQUE_H
|
||||
#define _CPP_BACKWARD_DEQUE_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include "algobase.h"
|
||||
#include "alloc.h"
|
||||
#include <deque>
|
||||
|
||||
using std::deque;
|
||||
|
||||
#endif /* _CPP_BACKWARD_DEQUE_H */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
52
TBE/MinGW/include/c++/3.2.3/backward/fstream.h
Normal file
52
TBE/MinGW/include/c++/3.2.3/backward/fstream.h
Normal file
@@ -0,0 +1,52 @@
|
||||
// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#ifndef _CPP_BACKWARD_FSTREAM_H
|
||||
#define _CPP_BACKWARD_FSTREAM_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include <fstream>
|
||||
|
||||
using std::filebuf;
|
||||
using std::ifstream;
|
||||
using std::ofstream;
|
||||
using std::fstream;
|
||||
using std::streampos;
|
||||
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
using std::wfilebuf;
|
||||
using std::wifstream;
|
||||
using std::wofstream;
|
||||
using std::wfstream;
|
||||
using std::wstreampos;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
130
TBE/MinGW/include/c++/3.2.3/backward/function.h
Normal file
130
TBE/MinGW/include/c++/3.2.3/backward/function.h
Normal file
@@ -0,0 +1,130 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1996,1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifndef _CPP_BACKWARD_FUNCTION_H
|
||||
#define _CPP_BACKWARD_FUNCTION_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include <bits/c++config.h>
|
||||
#include <stddef.h>
|
||||
#include <bits/stl_function.h>
|
||||
#include <ext/functional>
|
||||
|
||||
// Names from stl_function.h
|
||||
using std::unary_function;
|
||||
using std::binary_function;
|
||||
using std::plus;
|
||||
using std::minus;
|
||||
using std::multiplies;
|
||||
using std::divides;
|
||||
using std::modulus;
|
||||
using std::negate;
|
||||
using std::equal_to;
|
||||
using std::not_equal_to;
|
||||
using std::greater;
|
||||
using std::less;
|
||||
using std::greater_equal;
|
||||
using std::less_equal;
|
||||
using std::logical_and;
|
||||
using std::logical_or;
|
||||
using std::logical_not;
|
||||
using std::unary_negate;
|
||||
using std::binary_negate;
|
||||
using std::not1;
|
||||
using std::not2;
|
||||
using std::binder1st;
|
||||
using std::binder2nd;
|
||||
using std::bind1st;
|
||||
using std::bind2nd;
|
||||
using std::pointer_to_unary_function;
|
||||
using std::pointer_to_binary_function;
|
||||
using std::ptr_fun;
|
||||
using std::mem_fun_t;
|
||||
using std::const_mem_fun_t;
|
||||
using std::mem_fun_ref_t;
|
||||
using std::const_mem_fun_ref_t;
|
||||
using std::mem_fun1_t;
|
||||
using std::const_mem_fun1_t;
|
||||
using std::mem_fun1_ref_t;
|
||||
using std::const_mem_fun1_ref_t;
|
||||
using std::mem_fun;
|
||||
using std::mem_fun_ref;
|
||||
|
||||
// Names from ext/functional
|
||||
using __gnu_cxx::identity_element;
|
||||
using __gnu_cxx::unary_compose;
|
||||
using __gnu_cxx::binary_compose;
|
||||
using __gnu_cxx::compose1;
|
||||
using __gnu_cxx::compose2;
|
||||
using __gnu_cxx::identity;
|
||||
using __gnu_cxx::select1st;
|
||||
using __gnu_cxx::select2nd;
|
||||
using __gnu_cxx::project1st;
|
||||
using __gnu_cxx::project2nd;
|
||||
using __gnu_cxx::constant_void_fun;
|
||||
using __gnu_cxx::constant_unary_fun;
|
||||
using __gnu_cxx::constant_binary_fun;
|
||||
using __gnu_cxx::constant0;
|
||||
using __gnu_cxx::constant1;
|
||||
using __gnu_cxx::constant2;
|
||||
using __gnu_cxx::subtractive_rng;
|
||||
using __gnu_cxx::mem_fun1;
|
||||
using __gnu_cxx::mem_fun1_ref;
|
||||
|
||||
#endif /* _CPP_BACKWARD_FUNCTION_H */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
72
TBE/MinGW/include/c++/3.2.3/backward/hash_map.h
Normal file
72
TBE/MinGW/include/c++/3.2.3/backward/hash_map.h
Normal file
@@ -0,0 +1,72 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _CPP_BACKWARD_HASH_MAP_H
|
||||
#define _CPP_BACKWARD_HASH_MAP_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include "algobase.h"
|
||||
#include <ext/hash_map>
|
||||
|
||||
using __gnu_cxx::hash;
|
||||
using __gnu_cxx::hashtable;
|
||||
using __gnu_cxx::hash_map;
|
||||
using __gnu_cxx::hash_multimap;
|
||||
|
||||
#endif /* _CPP_BACKWARD_HASH_MAP_H */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
69
TBE/MinGW/include/c++/3.2.3/backward/hash_set.h
Normal file
69
TBE/MinGW/include/c++/3.2.3/backward/hash_set.h
Normal file
@@ -0,0 +1,69 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _CPP_BACKWARD_HASH_SET_H
|
||||
#define _CPP_BACKWARD_HASH_SET_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include "algobase.h"
|
||||
#include <ext/hash_set>
|
||||
|
||||
using __gnu_cxx::hash;
|
||||
using __gnu_cxx::hashtable;
|
||||
using __gnu_cxx::hash_set;
|
||||
using __gnu_cxx::hash_multiset;
|
||||
|
||||
#endif /* _CPP_BACKWARD_HASH_SET_H */
|
||||
|
||||
76
TBE/MinGW/include/c++/3.2.3/backward/hashtable.h
Normal file
76
TBE/MinGW/include/c++/3.2.3/backward/hashtable.h
Normal file
@@ -0,0 +1,76 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996,1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*/
|
||||
|
||||
/* NOTE: This is an internal header file, included by other STL headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _CPP_BACKWARD_HASHTABLE_H
|
||||
#define _CPP_BACKWARD_HASHTABLE_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include <ext/stl_hashtable.h>
|
||||
#include "algo.h"
|
||||
#include "alloc.h"
|
||||
#include "vector.h"
|
||||
|
||||
using __gnu_cxx::hash;
|
||||
using __gnu_cxx::hashtable;
|
||||
|
||||
#endif /* _CPP_BACKWARD_HASHTABLE_H */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
71
TBE/MinGW/include/c++/3.2.3/backward/heap.h
Normal file
71
TBE/MinGW/include/c++/3.2.3/backward/heap.h
Normal file
@@ -0,0 +1,71 @@
|
||||
// Backward-compat support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
* Copyright (c) 1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
#ifndef _CPP_BACKWARD_HEAP_H
|
||||
#define _CPP_BACKWARD_HEAP_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include <bits/c++config.h>
|
||||
#include <bits/stl_heap.h>
|
||||
|
||||
using std::push_heap;
|
||||
using std::pop_heap;
|
||||
using std::make_heap;
|
||||
using std::sort_heap;
|
||||
|
||||
#endif /* _CPP_BACKWARD_HEAP_H */
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
70
TBE/MinGW/include/c++/3.2.3/backward/iomanip.h
Normal file
70
TBE/MinGW/include/c++/3.2.3/backward/iomanip.h
Normal file
@@ -0,0 +1,70 @@
|
||||
// Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#ifndef _CPP_BACKWARD_IOMANIP_H
|
||||
#define _CPP_BACKWARD_IOMANIP_H 1
|
||||
|
||||
#include "backward_warning.h"
|
||||
#include "iostream.h"
|
||||
#include <iomanip>
|
||||
|
||||
// These are from <ios> as per [27.4].
|
||||
using std::boolalpha;
|
||||
using std::noboolalpha;
|
||||
using std::showbase;
|
||||
using std::noshowbase;
|
||||
using std::showpoint;
|
||||
using std::noshowpoint;
|
||||
using std::showpos;
|
||||
using std::noshowpos;
|
||||
using std::skipws;
|
||||
using std::noskipws;
|
||||
using std::uppercase;
|
||||
using std::nouppercase;
|
||||
using std::internal;
|
||||
using std::left;
|
||||
using std::right;
|
||||
using std::dec;
|
||||
using std::hex;
|
||||
using std::oct;
|
||||
using std::fixed;
|
||||
using std::scientific;
|
||||
|
||||
// These are from <iomanip> as per [27.6]. Manipulators from <istream>
|
||||
// and <ostream> (e.g., endl) are made available via <iostream.h>.
|
||||
using std::resetiosflags;
|
||||
using std::setiosflags;
|
||||
using std::setbase;
|
||||
using std::setfill;
|
||||
using std::setprecision;
|
||||
using std::setw;
|
||||
|
||||
#endif
|
||||
|
||||
// Local Variables:
|
||||
// mode:C++
|
||||
// End:
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user