Merge ^vendor/binutils/dist@213996 into contrib/binutils. Skip adding

any files we do not need, delete some files that were removed upstream,
but keep our own customizations and backports from later binutils.
This commit is contained in:
Dimitry Andric 2010-10-18 20:57:43 +00:00
commit d1728c43cb
46 changed files with 1263 additions and 19921 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,255 +0,0 @@
aix386-core.c
aout0.c
aout32.c
aout64.c
aout-adobe.c
aout-arm.c
aout-cris.c
aoutf1.h
aout-ns32k.c
aout-sparcle.c
aout-target.h
aout-tic30.c
aoutx.h
archive.c
archures.c
armnetbsd.c
bfd.c
binary.c
bout.c
cache.c
cf-i386lynx.c
cf-m68klynx.c
cf-sparclynx.c
cisco-core.c
coff64-rs6000.c
coff-a29k.c
coff-alpha.c
coff-apollo.c
coff-arm.c
coff-aux.c
coffcode.h
coffgen.c
coff-go32.c
coff-h8300.c
coff-h8500.c
coff-i386.c
coff-i860.c
coff-i960.c
cofflink.c
coff-m68k.c
coff-m88k.c
coff-mips.c
coff-pmac.c
coff-rs6000.c
coff-sh.c
coff-sparc.c
coff-stgo32.c
coff-svm68k.c
coffswap.h
coff-tic30.c
coff-tic54x.c
coff-tic80.c
coff-u68k.c
coff-w65.c
coff-we32k.c
coff-z8k.c
corefile.c
cpu-a29k.c
cpu-alpha.c
cpu-arc.c
cpu-arm.c
cpu-avr.c
cpu-cris.c
cpu-d10v.c
cpu-d30v.c
cpu-fr30.c
cpu-h8300.c
cpu-h8500.c
cpu-hppa.c
cpu-i370.c
cpu-i386.c
cpu-i860.c
cpu-i960.c
cpu-ia64.c
cpu-m10200.c
cpu-m10300.c
cpu-m32r.c
cpu-m68hc11.c
cpu-m68hc12.c
cpu-m68k.c
cpu-m88k.c
cpu-mcore.c
cpu-mips.c
cpu-ns32k.c
cpu-pj.c
cpu-powerpc.c
cpu-rs6000.c
cpu-sh.c
cpu-sparc.c
cpu-tic30.c
cpu-tic54x.c
cpu-tic80.c
cpu-v850.c
cpu-vax.c
cpu-w65.c
cpu-we32k.c
cpu-z8k.c
demo64.c
dwarf1.c
dwarf2.c
ecoff.c
ecofflink.c
ecoffswap.h
efi-app-ia32.c
efi-app-ia64.c
elf32-arc.c
elf32-arm.h
elf32-avr.c
elf32.c
elf32-cris.c
elf32-d10v.c
elf32-d30v.c
elf32-fr30.c
elf32-gen.c
elf32-hppa.c
elf32-hppa.h
elf32-i370.c
elf32-i386.c
elf32-i860.c
elf32-i960.c
elf32-m32r.c
elf32-m68hc11.c
elf32-m68hc12.c
elf32-m68k.c
elf32-m88k.c
elf32-mcore.c
elf32-mips.c
elf32-pj.c
elf32-ppc.c
elf32-sh.c
elf32-sh-lin.c
elf32-sparc.c
elf32-v850.c
elf64-alpha.c
elf64.c
elf64-gen.c
elf64-hppa.c
elf64-hppa.h
elf64-mips.c
elf64-sparc.c
elf64-x86-64.c
elfarm-nabi.c
elfarm-oabi.c
elf-bfd.h
elf.c
elfcode.h
elfcore.h
elf-hppa.h
elflink.c
elflink.h
elf-m10200.c
elf-m10300.c
epoc-pe-arm.c
epoc-pei-arm.c
format.c
freebsd.h
genlink.h
go32stub.h
hash.c
hp300bsd.c
hp300hpux.c
hpux-core.c
i386aout.c
i386bsd.c
i386dynix.c
i386freebsd.c
i386linux.c
i386lynx.c
i386mach3.c
i386msdos.c
i386netbsd.c
i386os9k.c
ieee.c
ihex.c
init.c
irix-core.c
libaout.h
libbfd.c
libbfd.h
libcoff.h
libecoff.h
libhppa.h
libieee.h
libnlm.h
liboasys.h
libpei.h
linker.c
lynx-core.c
m68k4knetbsd.c
m68klinux.c
m68klynx.c
m68knetbsd.c
m88kmach3.c
mipsbsd.c
netbsd.h
newsos3.c
nlm32-alpha.c
nlm32.c
nlm32-i386.c
nlm32-ppc.c
nlm32-sparc.c
nlm64.c
nlm.c
nlmcode.h
nlmswap.h
nlm-target.h
ns32k.h
ns32knetbsd.c
oasys.c
opncls.c
osf-core.c
pc532-mach.c
pe-arm.c
pe-i386.c
pei-arm.c
peicode.h
peigen.c
pei-i386.c
pei-mcore.c
pei-mips.c
pei-ppc.c
pei-sh.c
pe-mcore.c
pe-mips.c
pe-ppc.c
pe-sh.c
ppcboot.c
reloc16.c
reloc.c
riscix.c
sco5-core.c
section.c
som.c
som.h
sparclinux.c
sparclynx.c
sparcnetbsd.c
srec.c
stabs.c
stab-syms.c
sunos.c
syms.c
targets.c
tekhex.c
trad-core.c
vaxnetbsd.c
versados.c
vms.c
vms-gsd.c
vms.h
vms-hdr.c
vms-misc.c
vms-tir.c
xcofflink.c
xcoff-target.h

View File

@ -22,41 +22,43 @@
# define SHARED 273
# define NONSHARED 274
# define NONAME 275
# define SINGLE 276
# define MULTIPLE 277
# define INITINSTANCE 278
# define INITGLOBAL 279
# define TERMINSTANCE 280
# define TERMGLOBAL 281
# define ID 282
# define NUMBER 283
# define PRIVATE 276
# define SINGLE 277
# define MULTIPLE 278
# define INITINSTANCE 279
# define INITGLOBAL 280
# define TERMINSTANCE 281
# define TERMGLOBAL 282
# define ID 283
# define NUMBER 284
#line 1 "defparse.y"
/* defparse.y - parser for .def files */
/* Copyright 1995, 1997, 1998, 1999 Free Software Foundation, Inc.
/* Copyright 1995, 1997, 1998, 1999, 2004
Free Software Foundation, Inc.
This file is part of GNU Binutils.
This file is part of GNU Binutils.
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 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.
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. */
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. */
#include "bfd.h"
#include "bucomm.h"
#include "dlltool.h"
#line 26 "defparse.y"
#line 27 "defparse.y"
#ifndef YYSTYPE
typedef union {
char *id;
@ -71,12 +73,12 @@ typedef union {
#define YYFINAL 96
#define YYFINAL 98
#define YYFLAG -32768
#define YYNTBASE 34
#define YYNTBASE 35
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
#define YYTRANSLATE(x) ((unsigned)(x) <= 283 ? yytranslate[x] : 55)
#define YYTRANSLATE(x) ((unsigned)(x) <= 284 ? yytranslate[x] : 57)
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
static const char yytranslate[] =
@ -85,9 +87,9 @@ static const char yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 32, 2, 30, 2, 2, 2,
2, 2, 2, 2, 33, 2, 31, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 31, 2, 2, 33, 2, 2, 2, 2, 2,
2, 32, 2, 2, 34, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@ -109,42 +111,42 @@ static const char yytranslate[] =
2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29
26, 27, 28, 29, 30
};
#if YYDEBUG
static const short yyprhs[] =
{
0, 0, 3, 5, 9, 14, 17, 20, 24, 28,
31, 34, 37, 40, 43, 48, 49, 52, 59, 62,
64, 72, 80, 86, 92, 98, 104, 108, 112, 115,
117, 120, 124, 126, 128, 129, 132, 133, 135, 137,
139, 141, 143, 145, 147, 149, 150, 152, 153, 155,
156, 158, 162, 163, 166, 167, 170, 175, 176, 180,
181, 182, 186, 188, 190, 192
31, 34, 37, 40, 43, 48, 49, 52, 60, 63,
65, 73, 81, 87, 93, 99, 105, 109, 113, 116,
118, 121, 125, 127, 129, 130, 133, 134, 136, 138,
140, 142, 144, 146, 148, 150, 151, 153, 154, 156,
157, 159, 160, 162, 166, 167, 170, 171, 174, 179,
180, 184, 185, 186, 190, 192, 194, 196
};
static const short yyrhs[] =
{
34, 35, 0, 35, 0, 3, 49, 52, 0, 4,
49, 52, 53, 0, 11, 36, 0, 5, 28, 0,
6, 29, 44, 0, 7, 29, 44, 0, 8, 42,
0, 9, 42, 0, 10, 40, 0, 12, 38, 0,
13, 29, 0, 13, 29, 30, 29, 0, 0, 36,
37, 0, 28, 51, 50, 47, 46, 48, 0, 38,
39, 0, 39, 0, 28, 31, 28, 30, 28, 30,
28, 0, 28, 31, 28, 30, 28, 30, 29, 0,
28, 31, 28, 30, 28, 0, 28, 31, 28, 30,
29, 0, 28, 30, 28, 30, 28, 0, 28, 30,
28, 30, 29, 0, 28, 30, 28, 0, 28, 30,
29, 0, 40, 41, 0, 41, 0, 28, 42, 0,
42, 43, 45, 0, 45, 0, 32, 0, 0, 32,
29, 0, 0, 16, 0, 17, 0, 18, 0, 19,
0, 20, 0, 22, 0, 23, 0, 15, 0, 0,
21, 0, 0, 9, 0, 0, 28, 0, 28, 30,
28, 0, 0, 33, 29, 0, 0, 31, 28, 0,
31, 28, 30, 28, 0, 0, 14, 31, 29, 0,
0, 0, 53, 43, 54, 0, 24, 0, 25, 0,
26, 0, 27, 0
35, 36, 0, 36, 0, 3, 51, 54, 0, 4,
51, 54, 55, 0, 11, 37, 0, 5, 29, 0,
6, 30, 45, 0, 7, 30, 45, 0, 8, 43,
0, 9, 43, 0, 10, 41, 0, 12, 39, 0,
13, 30, 0, 13, 30, 31, 30, 0, 0, 37,
38, 0, 29, 53, 52, 48, 47, 49, 50, 0,
39, 40, 0, 40, 0, 29, 32, 29, 31, 29,
31, 29, 0, 29, 32, 29, 31, 29, 31, 30,
0, 29, 32, 29, 31, 29, 0, 29, 32, 29,
31, 30, 0, 29, 31, 29, 31, 29, 0, 29,
31, 29, 31, 30, 0, 29, 31, 29, 0, 29,
31, 30, 0, 41, 42, 0, 42, 0, 29, 43,
0, 43, 44, 46, 0, 46, 0, 33, 0, 0,
33, 30, 0, 0, 16, 0, 17, 0, 18, 0,
19, 0, 20, 0, 23, 0, 24, 0, 15, 0,
0, 21, 0, 0, 9, 0, 0, 22, 0, 0,
29, 0, 29, 31, 29, 0, 0, 34, 30, 0,
0, 32, 29, 0, 32, 29, 31, 29, 0, 0,
14, 32, 30, 0, 0, 0, 55, 44, 56, 0,
25, 0, 26, 0, 27, 0, 28, 0
};
#endif
@ -153,13 +155,13 @@ static const short yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] =
{
0, 43, 44, 47, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 63, 65, 68, 72, 74,
77, 79, 80, 81, 82, 83, 84, 85, 88, 90,
93, 97, 99, 102, 104, 106, 107, 110, 112, 113,
114, 115, 116, 117, 120, 122, 125, 127, 130, 132,
135, 136, 142, 145, 147, 150, 152, 158, 161, 162,
165, 167, 170, 172, 173, 174
0, 44, 45, 48, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 64, 66, 69, 73, 75,
78, 80, 81, 82, 83, 84, 85, 86, 89, 91,
94, 98, 100, 103, 105, 107, 108, 111, 113, 114,
115, 116, 117, 118, 121, 123, 126, 128, 131, 133,
136, 138, 141, 142, 148, 151, 153, 156, 158, 164,
167, 168, 171, 173, 176, 178, 179, 180
};
#endif
@ -172,38 +174,38 @@ static const char *const yytname[] =
"$", "error", "$undefined.", "NAME", "LIBRARY", "DESCRIPTION",
"STACKSIZE", "HEAPSIZE", "CODE", "DATA", "SECTIONS", "EXPORTS",
"IMPORTS", "VERSIONK", "BASE", "CONSTANT", "READ", "WRITE", "EXECUTE",
"SHARED", "NONSHARED", "NONAME", "SINGLE", "MULTIPLE", "INITINSTANCE",
"INITGLOBAL", "TERMINSTANCE", "TERMGLOBAL", "ID", "NUMBER", "'.'",
"'='", "','", "'@'", "start", "command", "explist", "expline",
"implist", "impline", "seclist", "secline", "attr_list", "opt_comma",
"opt_number", "attr", "opt_CONSTANT", "opt_NONAME", "opt_DATA",
"opt_name", "opt_ordinal", "opt_equal_name", "opt_base", "option_list",
"option", 0
"SHARED", "NONSHARED", "NONAME", "PRIVATE", "SINGLE", "MULTIPLE",
"INITINSTANCE", "INITGLOBAL", "TERMINSTANCE", "TERMGLOBAL", "ID",
"NUMBER", "'.'", "'='", "','", "'@'", "start", "command", "explist",
"expline", "implist", "impline", "seclist", "secline", "attr_list",
"opt_comma", "opt_number", "attr", "opt_CONSTANT", "opt_NONAME",
"opt_DATA", "opt_PRIVATE", "opt_name", "opt_ordinal", "opt_equal_name",
"opt_base", "option_list", "option", 0
};
#endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const short yyr1[] =
{
0, 34, 34, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 36, 36, 37, 38, 38,
39, 39, 39, 39, 39, 39, 39, 39, 40, 40,
41, 42, 42, 43, 43, 44, 44, 45, 45, 45,
45, 45, 45, 45, 46, 46, 47, 47, 48, 48,
49, 49, 49, 50, 50, 51, 51, 51, 52, 52,
53, 53, 54, 54, 54, 54
0, 35, 35, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 37, 37, 38, 39, 39,
40, 40, 40, 40, 40, 40, 40, 40, 41, 41,
42, 43, 43, 44, 44, 45, 45, 46, 46, 46,
46, 46, 46, 46, 47, 47, 48, 48, 49, 49,
50, 50, 51, 51, 51, 52, 52, 53, 53, 53,
54, 54, 55, 55, 56, 56, 56, 56
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const short yyr2[] =
{
0, 2, 1, 3, 4, 2, 2, 3, 3, 2,
2, 2, 2, 2, 4, 0, 2, 6, 2, 1,
2, 2, 2, 2, 4, 0, 2, 7, 2, 1,
7, 7, 5, 5, 5, 5, 3, 3, 2, 1,
2, 3, 1, 1, 0, 2, 0, 1, 1, 1,
1, 1, 1, 1, 1, 0, 1, 0, 1, 0,
1, 3, 0, 2, 0, 2, 4, 0, 3, 0,
0, 3, 1, 1, 1, 1
1, 0, 1, 3, 0, 2, 0, 2, 4, 0,
3, 0, 0, 3, 1, 1, 1, 1
};
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
@ -211,81 +213,83 @@ static const short yyr2[] =
error. */
static const short yydefact[] =
{
0, 52, 52, 0, 0, 0, 0, 0, 0, 15,
0, 0, 0, 2, 50, 59, 59, 6, 36, 36,
0, 54, 54, 0, 0, 0, 0, 0, 0, 15,
0, 0, 0, 2, 52, 61, 61, 6, 36, 36,
37, 38, 39, 40, 41, 42, 43, 9, 32, 10,
0, 11, 29, 5, 0, 12, 19, 13, 1, 0,
0, 3, 60, 0, 7, 8, 33, 0, 30, 28,
57, 16, 0, 0, 18, 0, 51, 0, 4, 35,
31, 0, 54, 26, 27, 0, 14, 58, 0, 55,
0, 47, 0, 0, 62, 63, 64, 65, 61, 0,
53, 46, 45, 24, 25, 22, 23, 56, 44, 49,
0, 48, 17, 20, 21, 0, 0
0, 3, 62, 0, 7, 8, 33, 0, 30, 28,
59, 16, 0, 0, 18, 0, 53, 0, 4, 35,
31, 0, 56, 26, 27, 0, 14, 60, 0, 57,
0, 47, 0, 0, 64, 65, 66, 67, 63, 0,
55, 46, 45, 24, 25, 22, 23, 58, 44, 49,
0, 48, 51, 20, 21, 50, 17, 0, 0
};
static const short yydefgoto[] =
{
12, 13, 33, 51, 35, 36, 31, 32, 27, 47,
44, 28, 89, 82, 92, 15, 71, 62, 41, 58,
78
44, 28, 89, 82, 92, 96, 15, 71, 62, 41,
58, 78
};
static const short yypact[] =
{
32, -22, -22, -19, -13, 22, 30, 30, -6,-32768,
26, 38, 21,-32768, 29, 46, 46,-32768, 36, 36,
32, -12, -12, 17, -8, 33, -4, -4, 35,-32768,
36, 37, 21,-32768, 38, 48, 48,-32768, 39, 39,
-32768,-32768,-32768,-32768,-32768,-32768,-32768, -15,-32768, -15,
30, -6,-32768, 41, -16, 26,-32768, 40,-32768, 43,
42,-32768,-32768, 45,-32768,-32768,-32768, 30, -15,-32768,
44,-32768, -9, 48,-32768, 49,-32768, 50, -14,-32768,
-32768, 52, 39, 47,-32768, 51,-32768,-32768, 31, 53,
55, 61, 33, 35,-32768,-32768,-32768,-32768,-32768, 57,
-32768,-32768, 71,-32768,-32768, 58,-32768,-32768,-32768, 78,
37,-32768,-32768,-32768,-32768, 89,-32768
-4, 35,-32768, 41, -25, 36,-32768, 40,-32768, 44,
34,-32768,-32768, 45,-32768,-32768,-32768, -4, -15,-32768,
42,-32768, -19, 47,-32768, 49,-32768, 50, 22,-32768,
-32768, 52, 43, 51,-32768, 53,-32768,-32768, 26, 54,
56, 57, 27, 29,-32768,-32768,-32768,-32768,-32768, 58,
-32768,-32768, 68,-32768,-32768, 59,-32768,-32768,-32768, 79,
31,-32768, 46,-32768,-32768,-32768,-32768, 89,-32768
};
static const short yypgoto[] =
{
-32768, 79,-32768,-32768,-32768, 59,-32768, 62, -7, 34,
76, 54,-32768,-32768,-32768, 88,-32768,-32768, 80,-32768,
-32768
-32768, 80,-32768,-32768,-32768, 60,-32768, 62, -7, 55,
72, 61,-32768,-32768,-32768,-32768, 92,-32768,-32768, 81,
-32768,-32768
};
#define YYLAST 101
#define YYLAST 113
static const short yytable[] =
{
29, -34, -34, -34, -34, -34, 14, -34, -34, 17,
-34, -34, -34, -34, 52, 53, 18, 46, 46, 63,
64, 95, 30, 48, 1, 2, 3, 4, 5, 6,
29, -34, -34, -34, -34, -34, 52, 53, -34, -34,
63, 64, 20, 21, 22, 23, 24, 14, 46, 25,
26, 97, 18, 48, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 20, 21, 22, 23,
24, 19, 25, 26, 34, 74, 75, 76, 77, 39,
40, 83, 84, 85, 86, 93, 94, 37, 43, 50,
55, 56, 70, 57, 59, 61, 65, 72, 66, 67,
69, 73, 81, 79, 80, 87, 88, 91, 90, 96,
16, 38, 68, 49, 54, 45, 42, 0, 0, 0,
0, 60
6, 7, 8, 9, 10, 11, 17, -34, -34, -34,
-34, 74, 75, 76, 77, 46, 83, 84, 85, 86,
93, 94, 40, 19, 30, 34, 57, 37, 95, 39,
50, 55, 43, 56, 61, 59, 65, 70, 81, 66,
67, 69, 72, 88, 73, 79, 80, 87, 91, 98,
90, 45, 38, 49, 16, 54, 0, 42, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 60, 0,
0, 0, 0, 68
};
static const short yycheck[] =
{
7, 16, 17, 18, 19, 20, 28, 22, 23, 28,
24, 25, 26, 27, 30, 31, 29, 32, 32, 28,
29, 0, 28, 30, 3, 4, 5, 6, 7, 8,
7, 16, 17, 18, 19, 20, 31, 32, 23, 24,
29, 30, 16, 17, 18, 19, 20, 29, 33, 23,
24, 0, 30, 30, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 16, 17, 18, 19,
20, 29, 22, 23, 28, 24, 25, 26, 27, 30,
14, 28, 29, 28, 29, 28, 29, 29, 32, 28,
30, 28, 33, 31, 29, 31, 28, 30, 29, 29,
28, 30, 21, 30, 29, 28, 15, 9, 30, 0,
2, 12, 58, 31, 35, 19, 16, -1, -1, -1,
-1, 47
8, 9, 10, 11, 12, 13, 29, 25, 26, 27,
28, 25, 26, 27, 28, 33, 29, 30, 29, 30,
29, 30, 14, 30, 29, 29, 32, 30, 22, 31,
29, 31, 33, 29, 32, 30, 29, 34, 21, 30,
30, 29, 31, 15, 31, 31, 30, 29, 9, 0,
31, 19, 12, 31, 2, 35, -1, 16, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 47, -1,
-1, -1, -1, 58
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/share/bison/bison.simple"
#line 3 "/usr/share/bison-1.35/bison.simple"
/* Skeleton output parser for bison,
@ -598,7 +602,7 @@ yystpcpy (yydest, yysrc)
# endif
#endif
#line 315 "/usr/share/bison/bison.simple"
#line 315 "/usr/share/bison-1.35/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
@ -992,192 +996,200 @@ yyreduce:
switch (yyn) {
case 3:
#line 48 "defparse.y"
#line 49 "defparse.y"
{ def_name (yyvsp[-1].id, yyvsp[0].number); }
break;
case 4:
#line 49 "defparse.y"
#line 50 "defparse.y"
{ def_library (yyvsp[-2].id, yyvsp[-1].number); }
break;
case 6:
#line 51 "defparse.y"
#line 52 "defparse.y"
{ def_description (yyvsp[0].id);}
break;
case 7:
#line 52 "defparse.y"
#line 53 "defparse.y"
{ def_stacksize (yyvsp[-1].number, yyvsp[0].number);}
break;
case 8:
#line 53 "defparse.y"
#line 54 "defparse.y"
{ def_heapsize (yyvsp[-1].number, yyvsp[0].number);}
break;
case 9:
#line 54 "defparse.y"
#line 55 "defparse.y"
{ def_code (yyvsp[0].number);}
break;
case 10:
#line 55 "defparse.y"
#line 56 "defparse.y"
{ def_data (yyvsp[0].number);}
break;
case 13:
#line 58 "defparse.y"
#line 59 "defparse.y"
{ def_version (yyvsp[0].number,0);}
break;
case 14:
#line 59 "defparse.y"
#line 60 "defparse.y"
{ def_version (yyvsp[-2].number,yyvsp[0].number);}
break;
case 17:
#line 70 "defparse.y"
{ def_exports (yyvsp[-5].id, yyvsp[-4].id, yyvsp[-3].number, yyvsp[-2].number, yyvsp[-1].number, yyvsp[0].number);}
#line 71 "defparse.y"
{ def_exports (yyvsp[-6].id, yyvsp[-5].id, yyvsp[-4].number, yyvsp[-3].number, yyvsp[-2].number, yyvsp[-1].number, yyvsp[0].number);}
break;
case 20:
#line 78 "defparse.y"
#line 79 "defparse.y"
{ def_import (yyvsp[-6].id,yyvsp[-4].id,yyvsp[-2].id,yyvsp[0].id, 0); }
break;
case 21:
#line 79 "defparse.y"
#line 80 "defparse.y"
{ def_import (yyvsp[-6].id,yyvsp[-4].id,yyvsp[-2].id, 0,yyvsp[0].number); }
break;
case 22:
#line 80 "defparse.y"
#line 81 "defparse.y"
{ def_import (yyvsp[-4].id,yyvsp[-2].id, 0,yyvsp[0].id, 0); }
break;
case 23:
#line 81 "defparse.y"
#line 82 "defparse.y"
{ def_import (yyvsp[-4].id,yyvsp[-2].id, 0, 0,yyvsp[0].number); }
break;
case 24:
#line 82 "defparse.y"
#line 83 "defparse.y"
{ def_import ( 0,yyvsp[-4].id,yyvsp[-2].id,yyvsp[0].id, 0); }
break;
case 25:
#line 83 "defparse.y"
#line 84 "defparse.y"
{ def_import ( 0,yyvsp[-4].id,yyvsp[-2].id, 0,yyvsp[0].number); }
break;
case 26:
#line 84 "defparse.y"
#line 85 "defparse.y"
{ def_import ( 0,yyvsp[-2].id, 0,yyvsp[0].id, 0); }
break;
case 27:
#line 85 "defparse.y"
#line 86 "defparse.y"
{ def_import ( 0,yyvsp[-2].id, 0, 0,yyvsp[0].number); }
break;
case 30:
#line 94 "defparse.y"
#line 95 "defparse.y"
{ def_section (yyvsp[-1].id,yyvsp[0].number);}
break;
case 35:
#line 106 "defparse.y"
#line 107 "defparse.y"
{ yyval.number=yyvsp[0].number;}
break;
case 36:
#line 107 "defparse.y"
#line 108 "defparse.y"
{ yyval.number=-1;}
break;
case 37:
#line 111 "defparse.y"
#line 112 "defparse.y"
{ yyval.number = 1; }
break;
case 38:
#line 112 "defparse.y"
#line 113 "defparse.y"
{ yyval.number = 2; }
break;
case 39:
#line 113 "defparse.y"
#line 114 "defparse.y"
{ yyval.number = 4; }
break;
case 40:
#line 114 "defparse.y"
#line 115 "defparse.y"
{ yyval.number = 8; }
break;
case 41:
#line 115 "defparse.y"
{ yyval.number = 0; }
break;
case 42:
#line 116 "defparse.y"
{ yyval.number = 0; }
break;
case 43:
case 42:
#line 117 "defparse.y"
{ yyval.number = 0; }
break;
case 43:
#line 118 "defparse.y"
{ yyval.number = 0; }
break;
case 44:
#line 121 "defparse.y"
#line 122 "defparse.y"
{yyval.number=1;}
break;
case 45:
#line 122 "defparse.y"
#line 123 "defparse.y"
{yyval.number=0;}
break;
case 46:
#line 126 "defparse.y"
#line 127 "defparse.y"
{yyval.number=1;}
break;
case 47:
#line 127 "defparse.y"
#line 128 "defparse.y"
{yyval.number=0;}
break;
case 48:
#line 131 "defparse.y"
#line 132 "defparse.y"
{ yyval.number = 1; }
break;
case 49:
#line 132 "defparse.y"
#line 133 "defparse.y"
{ yyval.number = 0; }
break;
case 50:
#line 135 "defparse.y"
{ yyval.id =yyvsp[0].id; }
#line 137 "defparse.y"
{ yyval.number = 1; }
break;
case 51:
#line 137 "defparse.y"
#line 138 "defparse.y"
{ yyval.number = 0; }
break;
case 52:
#line 141 "defparse.y"
{ yyval.id =yyvsp[0].id; }
break;
case 53:
#line 143 "defparse.y"
{
char *name = xmalloc (strlen (yyvsp[-2].id) + 1 + strlen (yyvsp[0].id) + 1);
sprintf (name, "%s.%s", yyvsp[-2].id, yyvsp[0].id);
yyval.id = name;
}
break;
case 52:
#line 142 "defparse.y"
case 54:
#line 148 "defparse.y"
{ yyval.id=""; }
break;
case 53:
#line 146 "defparse.y"
{ yyval.number=yyvsp[0].number;}
break;
case 54:
#line 147 "defparse.y"
{ yyval.number=-1;}
break;
case 55:
#line 151 "defparse.y"
{ yyval.id = yyvsp[0].id; }
#line 152 "defparse.y"
{ yyval.number=yyvsp[0].number;}
break;
case 56:
#line 153 "defparse.y"
{ yyval.number=-1;}
break;
case 57:
#line 157 "defparse.y"
{ yyval.id = yyvsp[0].id; }
break;
case 58:
#line 159 "defparse.y"
{
char *name = xmalloc (strlen (yyvsp[-2].id) + 1 + strlen (yyvsp[0].id) + 1);
sprintf (name, "%s.%s", yyvsp[-2].id, yyvsp[0].id);
yyval.id = name;
}
break;
case 57:
#line 158 "defparse.y"
case 59:
#line 164 "defparse.y"
{ yyval.id = 0; }
break;
case 58:
#line 161 "defparse.y"
case 60:
#line 167 "defparse.y"
{ yyval.number= yyvsp[0].number;}
break;
case 59:
#line 162 "defparse.y"
case 61:
#line 168 "defparse.y"
{ yyval.number=-1;}
break;
}
#line 705 "/usr/share/bison/bison.simple"
#line 705 "/usr/share/bison-1.35/bison.simple"
yyvsp -= yylen;
@ -1408,4 +1420,4 @@ yyreturn:
#endif
return yyresult;
}
#line 176 "defparse.y"
#line 182 "defparse.y"

View File

@ -28,14 +28,15 @@ typedef union {
# define SHARED 273
# define NONSHARED 274
# define NONAME 275
# define SINGLE 276
# define MULTIPLE 277
# define INITINSTANCE 278
# define INITGLOBAL 279
# define TERMINSTANCE 280
# define TERMGLOBAL 281
# define ID 282
# define NUMBER 283
# define PRIVATE 276
# define SINGLE 277
# define MULTIPLE 278
# define INITINSTANCE 279
# define INITGLOBAL 280
# define TERMINSTANCE 281
# define TERMGLOBAL 282
# define ID 283
# define NUMBER 284
extern YYSTYPE yylval;

View File

@ -1,22 +1,23 @@
%{ /* defparse.y - parser for .def files */
/* Copyright 1995, 1997, 1998, 1999 Free Software Foundation, Inc.
/* Copyright 1995, 1997, 1998, 1999, 2004
Free Software Foundation, Inc.
This file is part of GNU Binutils.
This file is part of GNU Binutils.
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 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.
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. */
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. */
#include "bfd.h"
#include "bucomm.h"
@ -30,11 +31,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
%token NAME, LIBRARY, DESCRIPTION, STACKSIZE, HEAPSIZE, CODE, DATA
%token SECTIONS, EXPORTS, IMPORTS, VERSIONK, BASE, CONSTANT
%token READ WRITE EXECUTE SHARED NONSHARED NONAME
%token READ WRITE EXECUTE SHARED NONSHARED NONAME PRIVATE
%token SINGLE MULTIPLE INITINSTANCE INITGLOBAL TERMINSTANCE TERMGLOBAL
%token <id> ID
%token <number> NUMBER
%type <number> opt_base opt_ordinal opt_NONAME opt_CONSTANT opt_DATA
%type <number> opt_base opt_ordinal opt_NONAME opt_CONSTANT opt_DATA opt_PRIVATE
%type <number> attr attr_list opt_number
%type <id> opt_name opt_equal_name
@ -66,8 +67,8 @@ explist:
;
expline:
ID opt_equal_name opt_ordinal opt_NONAME opt_CONSTANT opt_DATA
{ def_exports ($1, $2, $3, $4, $5, $6);}
ID opt_equal_name opt_ordinal opt_NONAME opt_CONSTANT opt_DATA opt_PRIVATE
{ def_exports ($1, $2, $3, $4, $5, $6, $7);}
;
implist:
implist impline
@ -132,6 +133,11 @@ opt_DATA:
| { $$ = 0; }
;
opt_PRIVATE:
PRIVATE { $$ = 1; }
| { $$ = 0; }
;
opt_name: ID { $$ =$1; }
| ID '.' ID
{

View File

@ -1,7 +1,7 @@
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
* $Header: /cvs/src/src/binutils/Attic/rclex.c,v 1.1.12.1 2004/04/09 19:32:15 drow Exp $
* $Header: /cvs/src/src/binutils/rclex.c,v 1.1.12.1 2004/04/09 19:32:15 drow Exp $
*/
#define FLEX_SCANNER

View File

@ -1,5 +1,5 @@
%{ /* rcparse.y -- parser for Windows rc files
Copyright 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support.
This file is part of GNU Binutils.
@ -52,6 +52,11 @@ static unsigned long style;
static unsigned long base_style;
static unsigned long default_style;
static unsigned long class;
static struct res_id res_text_field;
/* This is used for COMBOBOX, LISTBOX and EDITTEXT which
do not allow resource 'text' field in control definition. */
static const struct res_id res_null_text = { 1, {{0, L""}}};
%}
@ -135,11 +140,11 @@ static unsigned long class;
%type <vervar> vertrans
%type <res_info> suboptions memflags_move_discard memflags_move
%type <memflags> memflag
%type <id> id resref
%type <id> id optresidc resref
%type <il> exstyle parennumber
%type <il> numexpr posnumexpr cnumexpr optcnumexpr cposnumexpr
%type <is> acc_options acc_option menuitem_flags menuitem_flag
%type <s> optstringc file_name resname
%type <s> file_name resname
%type <i> sizednumexpr sizedposnumexpr
%left '|'
@ -533,70 +538,78 @@ controls:
;
control:
AUTO3STATE
AUTO3STATE optresidc
{
default_style = BS_AUTO3STATE | WS_TABSTOP;
base_style = BS_AUTO3STATE;
class = CTL_BUTTON;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| AUTOCHECKBOX
| AUTOCHECKBOX optresidc
{
default_style = BS_AUTOCHECKBOX | WS_TABSTOP;
base_style = BS_AUTOCHECKBOX;
class = CTL_BUTTON;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| AUTORADIOBUTTON
| AUTORADIOBUTTON optresidc
{
default_style = BS_AUTORADIOBUTTON | WS_TABSTOP;
base_style = BS_AUTORADIOBUTTON;
class = CTL_BUTTON;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| BEDIT
| BEDIT optresidc
{
default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class = CTL_EDIT;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
if (dialog.ex == NULL)
rcparse_warning (_("BEDIT requires DIALOGEX"));
res_string_to_id (&$$->class, "BEDIT");
}
| CHECKBOX
| CHECKBOX optresidc
{
default_style = BS_CHECKBOX | WS_TABSTOP;
base_style = BS_CHECKBOX | WS_TABSTOP;
class = CTL_BUTTON;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| COMBOBOX
{
/* This is as per MSDN documentation. With some (???)
versions of MS rc.exe their is no default style. */
default_style = CBS_SIMPLE | WS_TABSTOP;
base_style = 0;
class = CTL_COMBOBOX;
res_text_field = res_null_text;
}
control_params
{
$$ = $3;
}
| CONTROL optstringc numexpr cnumexpr control_styleexpr cnumexpr
| CONTROL optresidc numexpr cnumexpr control_styleexpr cnumexpr
cnumexpr cnumexpr cnumexpr optcnumexpr opt_control_data
{
$$ = define_control ($2, $3, $6, $7, $8, $9, $4, style, $10);
@ -607,7 +620,7 @@ control:
$$->data = $11;
}
}
| CONTROL optstringc numexpr cnumexpr control_styleexpr cnumexpr
| CONTROL optresidc numexpr cnumexpr control_styleexpr cnumexpr
cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data
{
$$ = define_control ($2, $3, $6, $7, $8, $9, $4, style, $10);
@ -616,7 +629,7 @@ control:
$$->help = $11;
$$->data = $12;
}
| CONTROL optstringc numexpr ',' QUOTEDSTRING control_styleexpr
| CONTROL optresidc numexpr ',' QUOTEDSTRING control_styleexpr
cnumexpr cnumexpr cnumexpr cnumexpr optcnumexpr opt_control_data
{
$$ = define_control ($2, $3, $7, $8, $9, $10, 0, style, $11);
@ -629,7 +642,7 @@ control:
$$->class.named = 1;
unicode_from_ascii (&$$->class.u.n.length, &$$->class.u.n.name, $5);
}
| CONTROL optstringc numexpr ',' QUOTEDSTRING control_styleexpr
| CONTROL optresidc numexpr ',' QUOTEDSTRING control_styleexpr
cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data
{
$$ = define_control ($2, $3, $7, $8, $9, $10, 0, style, $11);
@ -640,55 +653,60 @@ control:
$$->class.named = 1;
unicode_from_ascii (&$$->class.u.n.length, &$$->class.u.n.name, $5);
}
| CTEXT
| CTEXT optresidc
{
default_style = SS_CENTER | WS_GROUP;
base_style = SS_CENTER;
class = CTL_STATIC;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| DEFPUSHBUTTON
| DEFPUSHBUTTON optresidc
{
default_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
base_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
class = CTL_BUTTON;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| EDITTEXT
{
default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class = CTL_EDIT;
res_text_field = res_null_text;
}
control_params
{
$$ = $3;
}
| GROUPBOX
| GROUPBOX optresidc
{
default_style = BS_GROUPBOX;
base_style = BS_GROUPBOX;
class = CTL_BUTTON;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| HEDIT
| HEDIT optresidc
{
default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class = CTL_EDIT;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
if (dialog.ex == NULL)
rcparse_warning (_("IEDIT requires DIALOGEX"));
res_string_to_id (&$$->class, "HEDIT");
@ -716,15 +734,16 @@ control:
$$ = define_icon_control ($2, $3, $4, $5, style, $9, $10, $11,
dialog.ex);
}
| IEDIT
| IEDIT optresidc
{
default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class = CTL_EDIT;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
if (dialog.ex == NULL)
rcparse_warning (_("IEDIT requires DIALOGEX"));
res_string_to_id (&$$->class, "IEDIT");
@ -734,22 +753,24 @@ control:
default_style = LBS_NOTIFY | WS_BORDER;
base_style = LBS_NOTIFY | WS_BORDER;
class = CTL_LISTBOX;
res_text_field = res_null_text;
}
control_params
{
$$ = $3;
}
| LTEXT
| LTEXT optresidc
{
default_style = SS_LEFT | WS_GROUP;
base_style = SS_LEFT;
class = CTL_STATIC;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| PUSHBOX
| PUSHBOX optresidc
{
default_style = BS_PUSHBOX | WS_TABSTOP;
base_style = BS_PUSHBOX;
@ -757,65 +778,70 @@ control:
}
control_params
{
$$ = $3;
$$ = $4;
}
| PUSHBUTTON
| PUSHBUTTON optresidc
{
default_style = BS_PUSHBUTTON | WS_TABSTOP;
base_style = BS_PUSHBUTTON | WS_TABSTOP;
class = CTL_BUTTON;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| RADIOBUTTON
| RADIOBUTTON optresidc
{
default_style = BS_RADIOBUTTON | WS_TABSTOP;
base_style = BS_RADIOBUTTON;
class = CTL_BUTTON;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| RTEXT
| RTEXT optresidc
{
default_style = SS_RIGHT | WS_GROUP;
base_style = SS_RIGHT;
class = CTL_STATIC;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| SCROLLBAR
{
default_style = SBS_HORZ;
base_style = 0;
class = CTL_SCROLLBAR;
res_text_field = res_null_text;
}
control_params
{
$$ = $3;
}
| STATE3
| STATE3 optresidc
{
default_style = BS_3STATE | WS_TABSTOP;
base_style = BS_3STATE;
class = CTL_BUTTON;
res_text_field = $2;
}
control_params
{
$$ = $3;
$$ = $4;
}
| USERBUTTON QUOTEDSTRING ',' numexpr ',' numexpr ',' numexpr ','
| USERBUTTON resref numexpr ',' numexpr ',' numexpr ','
numexpr ',' numexpr ','
{ style = WS_CHILD | WS_VISIBLE; }
styleexpr optcnumexpr
{
$$ = define_control ($2, $4, $6, $8, $10, $12, CTL_BUTTON,
style, $16);
$$ = define_control ($2, $3, $5, $7, $9, $11, CTL_BUTTON,
style, $15);
}
;
@ -827,52 +853,56 @@ control:
style. CLASS is the class of the control. */
control_params:
optstringc numexpr cnumexpr cnumexpr cnumexpr cnumexpr
opt_control_data
numexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data
{
$$ = define_control ($1, $2, $3, $4, $5, $6, class,
$$ = define_control (res_text_field, $1, $2, $3, $4, $5, class,
default_style | WS_CHILD | WS_VISIBLE, 0);
if ($7 != NULL)
if ($6 != NULL)
{
if (dialog.ex == NULL)
rcparse_warning (_("control data requires DIALOGEX"));
$$->data = $7;
$$->data = $6;
}
}
| optstringc numexpr cnumexpr cnumexpr cnumexpr cnumexpr
| numexpr cnumexpr cnumexpr cnumexpr cnumexpr
control_params_styleexpr optcnumexpr opt_control_data
{
$$ = define_control ($1, $2, $3, $4, $5, $6, class, style, $8);
if ($9 != NULL)
$$ = define_control (res_text_field, $1, $2, $3, $4, $5, class, style, $7);
if ($8 != NULL)
{
if (dialog.ex == NULL)
rcparse_warning (_("control data requires DIALOGEX"));
$$->data = $9;
$$->data = $8;
}
}
| optstringc numexpr cnumexpr cnumexpr cnumexpr cnumexpr
| numexpr cnumexpr cnumexpr cnumexpr cnumexpr
control_params_styleexpr cnumexpr cnumexpr opt_control_data
{
$$ = define_control ($1, $2, $3, $4, $5, $6, class, style, $8);
$$ = define_control (res_text_field, $1, $2, $3, $4, $5, class, style, $7);
if (dialog.ex == NULL)
rcparse_warning (_("help ID requires DIALOGEX"));
$$->help = $9;
$$->data = $10;
$$->help = $8;
$$->data = $9;
}
;
optstringc:
optresidc:
/* empty */
{
$$ = NULL;
res_string_to_id (&$$, "");
}
| posnumexpr ','
{
$$.named = 0;
$$.u.id = $1;
}
| QUOTEDSTRING
{
$$ = $1;
res_string_to_id (&$$, $1);
}
| QUOTEDSTRING ','
{
$$ = $1;
res_string_to_id (&$$, $1);
}
;
@ -1732,8 +1762,7 @@ sizedposnumexpr:
/* Set the language from the command line. */
void
rcparse_set_language (lang)
int lang;
rcparse_set_language (int lang)
{
language = lang;
}

View File

@ -1,4 +1,4 @@
/* Copyright 2001 Free Software Foundation, Inc.
/* Copyright 2001, 2003 Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support (steve@cygnus.com).
This file is part of GNU binutils.
@ -406,7 +406,7 @@ enum_list:
%%
/* four modes
-d write structure defintions for sysroff in host format
-d write structure definitions for sysroff in host format
-i write functions to swap into sysroff format in
-o write functions to swap into sysroff format out
-c write code to print info in human form */
@ -415,9 +415,7 @@ int yydebug;
char writecode;
int
main(ac,av)
int ac;
char **av;
main (int ac, char **av)
{
yydebug=0;
if (ac > 1)
@ -434,8 +432,7 @@ return 0;
}
int
yyerror(s)
char *s;
yyerror (char *s)
{
fprintf(stderr, "%s\n" , s);
return 0;

View File

@ -1,5 +1,5 @@
%{
/* Copyright 2001 Free Software Foundation, Inc.
/* Copyright 2001, 2003 Free Software Foundation, Inc.
This file is part of GLD, the Gnu Linker.
@ -24,7 +24,7 @@ int number;
int unit;
#ifndef yywrap
static int yywrap () { return 1; }
static int yywrap (void) { return 1; }
#endif
%}
%%

View File

@ -1,3 +1,82 @@
2004-01-14 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
* acinclude.m4: Quote names of macros to be defined by AC_DEFUN
throughout.
* aclocal.m4: Regenerate.
* configure: Regenerate.
2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
* gettext.m4: Properly quote arguments to AC_DEFUN.
2003-09-24 Daniel Jacobowitz <drow@mvista.com>
* acx.m4 (AC_PROG_CPP_WERROR): New.
2003-08-27 Daniel Jacobowitz <drow@mvista.com>
* no-executables.m4: New file.
2003-07-07 Zack Weinberg <zack@codesourcery.com>
* gettext.m4: Delete all former contents.
(ZW_GNU_GETTEXT_SISTER_DIR): New macro.
* progtest.m4: New file.
2003-07-04 Zack Weinberg <zack@codesourcery.com>
* gettext.m4: New file - copy of gettext.m4 from binutils
CVS, with added AC_ISC_POSIX macro from gcc/aclocal.m4.
2003-05-14 Kelley Cook <kelleycook@wideopenwest.com>
* acinclude.m4: Accept i[3456789]86 for machine type.
2003-05-18 Nathanael Nerode <neroden@gcc.gnu.org>
* acx.m4: Introduce _GCC_TOPLEV_NONCANONICAL_BUILD,
_GCC_TOPLEV_NONCANOICAL_HOST, _GCC_TOPLEV_NONCANONICAL_TARGET,
GCC_TOPLEV_SUBDIRS.
2003-03-04 Nathanael Nerode <neroden@gcc.gnu.org>
* mh-dgux: Delete.
2002-12-28 Alexandre Oliva <aoliva@redhat.com>
* acx.m4: Name cache variables properly.
(NCN_STRICT_CHECK_TOOL): If program is not found and
value-if-not-found is empty, use ${ncn_tool_prefix}$2 or $2,
depending on whether build != host or not.
(NCN_STRICT_CHECK_TARGET_TOOL): Ditto, with the target prefix.
2002-12-28 Nathanael Nerode <neroden@gcc.gnu.org>
* acx.m4: New.
* mh-a68bsd, mh-aix386, mh-apollo68, mh-delta88, mh-hp300,
mh-hpux, mh-hpux8, mh-irix5, mh-irix6, mh-ncrsvr43, mh-openedition,
mh-riscos, mh-sysv: Delete.
* mh-cxux, mh-dgux386, mh-interix, mh-lynxrs6k, mh-ncr3000,
mh-necv4, mh-sco, mh-solaris, mh-sysv4, mh-sysv5, mt-v810: Simplify.
2002-12-16 Christopher Faylor <cgf@redhat.com>
* mh-cygwin: Don't build libtermcap if it doesn't exist.
2002-12-22 Geoffrey Keating <geoffk@apple.com>
* mt-aix43: Delete.
2002-11-23 H.J. Lu <hjl@gnu.org>
* accross.m4: New.
2002-11-10 Stan Shebs <shebs@apple.com>
Retire common MPW configury bits.
* mpw-mh-mpw: Remove.
* mpw: Remove directory along with all of its files.
2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* acinclude.m4: Allow for PWDCMD to override hardcoded pwd.
@ -10,33 +89,33 @@
2002-04-29 Nathanael Nerode <neroden@twcny.rr.com>
* config/mh-cxux: remove dead code
* config/mh-dgux386: remove dead code
* config/mh-hp300: remove dead code
* config/mh-hpux: remove dead code
* config/mh-hpux8: remove dead code
* config/mh-irix5: remove dead code
* config/mh-irix6: remove dead code
* config/mh-ncr3000: remove dead code
* config/mh-ncrsvr43: remove dead code
* config/mh-necv4: remove dead code
* config/mh-sco: remove dead code
* config/mh-solaris: remove dead code
* config/mh-sysv: remove dead code
* config/mh-sysv4: remove dead code
* config/mh-sysv5: remove dead code
* config/mh-irix4: remove, contains only dead code
* mh-cxux: remove dead code
* mh-dgux386: remove dead code
* mh-hp300: remove dead code
* mh-hpux: remove dead code
* mh-hpux8: remove dead code
* mh-irix5: remove dead code
* mh-irix6: remove dead code
* mh-ncr3000: remove dead code
* mh-ncrsvr43: remove dead code
* mh-necv4: remove dead code
* mh-sco: remove dead code
* mh-solaris: remove dead code
* mh-sysv: remove dead code
* mh-sysv4: remove dead code
* mh-sysv5: remove dead code
* mh-irix4: remove, contains only dead code
* config/mt-armpic: Delete.
* config/mt-elfalphapic: Delete.
* config/mt-i370pic: Delete.
* config/mt-ia64pic: Delete.
* config/mt-m68kpic: Delete.
* config/mt-papic: Delete.
* config/mt-ppcpic: Delete.
* config/mt-s390pic: Delete.
* config/mt-sparcpic: Delete.
* config/mt-x86pic: Delete.
* mt-armpic: Delete.
* mt-elfalphapic: Delete.
* mt-i370pic: Delete.
* mt-ia64pic: Delete.
* mt-m68kpic: Delete.
* mt-papic: Delete.
* mt-ppcpic: Delete.
* mt-s390pic: Delete.
* mt-sparcpic: Delete.
* mt-x86pic: Delete.
2002-04-19 Nathanael Nerode <neroden@twcny.rr.com>
@ -94,13 +173,17 @@
2000-07-21 Andrew Haley <aph@cygnus.com>
* mh-ia64pic: New file.
* mt-ia64pic: New file.
* mt-ia64pic: New file.
2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
* mh-s390pic: New file.
* mt-s390pic: New file.
2000-09-26 David Edelsohn <edelsohn@gnu.org>
* mt-aix43 (NM_FOR_TARGET): Add -B bsd-style flag.
2000-07-14 Mark P Mitchell <mark@codesourcery.com>
* mh-irix6 (CC): Don't set it.
@ -121,7 +204,7 @@
2000-02-22 Nick Clifton <nickc@cygnus.com>
* config/mt-wince: new file: Makefile fragment for WinCE targets.
* mt-wince: new file: Makefile fragment for WinCE targets.
2000-01-06 Geoff Keating <geoffk@cygnus.com>
@ -136,6 +219,15 @@ Tue Sep 7 23:31:01 1999 Linas Vepstas <linas@linas.org>
* mt-d30v: New file, pass -g -Os -Wa,-C as default options.
Thu Mar 18 00:17:50 1999 Mark Elbrecht <snowball3@usa.net>
* mh-go32: Delete.
* mh-djgpp: New. Renamed from mh-go32.
Wed Feb 24 12:52:17 1999 Stan Shebs <shebs@andros.cygnus.com>
* mh-windows: Ditto.
1999-02-08 Syd Polk <spolk@cygnus.com>
* acinclude.m4: Added macros to find itcl files.
@ -149,11 +241,23 @@ Tue Feb 2 22:51:21 1999 Philip Blundell <philb@gnu.org>
* mh-armpic: New file. Patch from Jim Pick <jim@jimpick.com>.
* mt-armpic: Likewise.
Sat Jan 30 08:04:00 1999 Mumit Khan <khan@xraylith.wisc.edu>
* mh-interix: New file.
Mon Jan 18 19:41:08 1999 Christopher Faylor <cgf@cygnus.com>
* cygwin.mh: Activate commented out dependencies for
gdb: libtermcap.
Wed Dec 30 20:34:52 1998 Christopher Faylor <cgf@cygnus.com>
* mt-cygwin: Remove.
Wed Dec 30 01:13:03 1998 Christopher Faylor <cgf@cygnus.com>
* mt-cygwin: New file. libtermcap target info.
Wed Nov 18 20:29:46 1998 Christopher Faylor <cgf@cygnus.com>
* cygwin.mh: Add extra libtermcap target information.
@ -162,8 +266,8 @@ Wed Nov 18 20:29:46 1998 Christopher Faylor <cgf@cygnus.com>
Mon Nov 2 15:15:33 1998 Geoffrey Noer <noer@cygnus.com>
* mh-cygwin32: delete
* mh-cygwin: was mh-cygwin32
* mh-cygwin32: delete
* mh-cygwin: was mh-cygwin32
1998-10-26 Syd Polk <spolk@cygnus.com>
@ -190,7 +294,7 @@ Mon Aug 10 00:15:47 1998 HJ Lu (hjl@gnu.org)
1998-05-29 Rob Savoye <rob@chinadoll.cygnus.com>
* acinclude.m4: New collection of generic autoconf macros.
Wed Apr 22 12:24:28 1998 Michael Meissner <meissner@cygnus.com>
* mt-ospace: New file, support using -Os instead of -O2 to compile
@ -208,10 +312,29 @@ Thu Mar 26 01:54:25 1998 Geoffrey Noer <noer@cygnus.com>
* mh-cygwin32: stop configuring and building dosrel.
Fri Feb 6 01:33:52 1998 Manfred Hollstein <manfred@s-direktnet.de>
* mh-sparcpic (PICFLAG): Define to properly according
to current multilib configuration.
* mt-sparcpic (PICFLAG_FOR_TARGET): Define to properly
according to current multilib configuration.
Sun Jan 4 01:06:55 1998 Mumit Khan <khan@xraylith.wisc.edu>
* mh-mingw32: New file.
Thu Sep 11 16:43:27 1997 Jim Wilson <wilson@cygnus.com>
* mh-elfalphapic, mt-elfalphapic: New files.
1997-09-15 02:37 Ulrich Drepper <drepper@cygnus.com>
* mt-linux: Define CXXFLAGS to make sure -fvtable-thunks is used.
Sun Sep 14 20:53:42 1997 Geoffrey Noer <noer@cygnus.com>
* mh-cygwin32: ok to build split texinfo files
Wed Jul 23 12:32:18 1997 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>
* mh-go32 (CFLAGS): Don't set -fno-omit-frame-pointer.
@ -233,8 +356,8 @@ Tue Mar 25 18:16:43 1997 Geoffrey Noer <noer@cygnus.com>
Wed Jan 8 19:56:43 1997 Geoffrey Noer <noer@cygnus.com>
* mh-cygwin32: override CFLAGS so debug info isn't included
in cygwin32-hosted tools by default
* mh-cygwin32: override CFLAGS so debug info isn't included
in cygwin32-hosted tools by default
Tue Dec 31 16:04:26 1996 Ian Lance Taylor <ian@cygnus.com>
@ -244,6 +367,20 @@ Mon Nov 11 10:29:51 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* mt-ppc: Delete file, options moved to newlib configure.
Mon Oct 28 17:32:46 1996 Stu Grossman (grossman@critters.cygnus.com)
* mh-windows: Add rules for building MSVC makefiles.
Thu Oct 24 09:02:07 1996 Stu Grossman (grossman@critters.cygnus.com)
* mh-windows (HOST_FLAGS): Set srcroot, which is needed
for MSVC build procedure.
Tue Oct 8 08:32:48 1996 Stu Grossman (grossman@critters.cygnus.com)
* mh-windows: Add support for windows host
(that is a build done under the Microsoft build environment).
Fri Oct 4 12:21:03 1996 Angela Marie Thomas (angela@cygnus.com)
* mh-dgux386: New file. x86 dgux specific flags
@ -257,6 +394,11 @@ Sat Aug 17 04:56:25 1996 Geoffrey Noer <noer@skaro.cygnus.com>
* mh-cygwin32: don't -D_WIN32 here anymore
Sun Aug 11 20:51:50 1996 Stu Grossman (grossman@critters.cygnus.com)
* mh-cygwin32 (CFLAGS): Define _WIN32 to be compatible
with normal Windows compilation environment.
Thu Aug 15 19:46:44 1996 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (SEGFLAG_68K, SEGFLAG_PPC): Remove.
@ -326,13 +468,28 @@ Thu Jan 25 16:05:33 1996 Ian Lance Taylor <ian@cygnus.com>
* mh-ncrsvr43 (CFLAGS): Remove -Hnocopyr.
Thu Nov 30 14:45:25 1995 J.T. Conklin <jtc@rtl.cygnus.com>
* mt-v810 (CC_FOR_TARGET): Add -ansi flag. NEC compiler
defaults to K&R mode, but doesn't have varargs.h, so we have to
compile in ANSI mode.
Wed Nov 29 13:49:08 1995 J.T. Conklin <jtc@rtl.cygnus.com>
* mt-v810 (CC_FOR_TARGET, AS_FOR_TARGET, AR_FOR_TARGET,
RANLIB_FOR_TARGET): Set as appropriate for NEC v810 toolchain.
Tue Nov 14 15:03:12 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* mh-i386win32: add LD_FOR_TARGET.
Tue Nov 7 15:41:30 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (CC_MWC68K, CC_MWCPPC): Remove unused include path.
(CC_MWCPPC): Add -mpw_chars, disable warnings, add comments
explaining reasons for various flags.
(EXTRALIBS_PPC, EXTRALIBS_MWCPPC ): Put runtime library first.
Fri Oct 13 14:44:25 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* mh-aix, mh-sun: Removed.
@ -341,7 +498,7 @@ Fri Oct 13 14:44:25 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* mh-sco, mh-solaris, mh-sysv4 (X11_EXTRA_LIBS): Define.
* mh-hp300, mh-hpux, mh-hpux8, mh-solaris, mh-sun3, mh-sysv4: Don't
* mh-hp300, mh-hpux, mh-hpux8, mh-solaris, mh-sun3, mh-sysv4: Don't
hardcode location of X stuff here.
Thu Sep 28 13:14:56 1995 Stan Shebs <shebs@andros.cygnus.com>
@ -350,6 +507,10 @@ Thu Sep 28 13:14:56 1995 Stan Shebs <shebs@andros.cygnus.com>
compilers, add definitions for library and link steps for
PowerMacs.
Sat Sep 16 18:31:08 PDT 1995 Angela Marie Thomas <angela@cygnus.com>
* mh-ncrsvr43: Removed AR_FLAGS
Thu Sep 14 08:20:04 1995 Fred Fish <fnf@cygnus.com>
* mh-hp300 (CC): Add "CC = cc -Wp,-H256000" to avoid
@ -364,10 +525,14 @@ Thu Jun 22 17:47:24 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (CC): Define ANSI_PROTOTYPES.
Mon Jun 5 18:26:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
* m?-*pic: Define PICFLAG* instead of LIB*FLAGS*.
Mon Apr 10 12:29:48 1995 Stan Shebs <shebs@andros.cygnus.com>
* mpw-mh-mpw (EXTRALIBS): Always link in Math.o, CSANELIB.o,
and ToolLibs.o.
and ToolLibs.o.
* mpw-mh-mpw (CC): Define ALMOST_STDC.
(CFLAGS): Remove ALMOST_STDC, -mc68881.
@ -382,6 +547,15 @@ Fri Mar 31 11:35:17 1995 Jason Molenda (crash@phydeaux.cygnus.com)
* mt-netware: New file.
Tue Mar 28 14:47:34 1995 Jason Molenda (crash@phydeaux.cygnus.com)
Revert this change:
Mon Mar 29 19:59:26 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-solaris: SunPRO C needs -Xs to be able to get a
working xmakefile for Emacs.
Mon Mar 13 12:31:29 1995 Ian Lance Taylor <ian@cygnus.com>
* mh-hpux8: New file.
@ -396,6 +570,10 @@ Wed Jan 11 16:29:34 1995 Jason Merrill <jason@phydeaux.cygnus.com>
* m?-*pic (LIBCXXFLAGS): Add -fno-implicit-templates.
Sat Nov 5 18:43:30 1994 Jason Merrill (jason@phydeaux.cygnus.com)
* m[th]-*pic: Support --enable-shared.
Thu Nov 3 17:27:19 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
* mh-irix4 (CC): Increase maximum string length.
@ -417,6 +595,15 @@ Thu May 19 00:32:11 1994 Jeff Law (law@snake.cs.utah.edu)
* mh-hpux (CC): Add -Wp,-H256000 to avoid "too much defining"
errors from the HPUX 8 compilers.
Fri May 6 14:19:25 1994 Steve Chamberlain (sac@cygnus.com)
* mh-go32: New fragment.
Thu May 5 20:06:45 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
* mh-lynxrs6k: Renamed from mh-lynxosrs6k, to make it
unique in 8.3 naming schemes.
Wed May 4 20:14:47 1994 D. V. Henkel-Wallace (gumby@cygnus.com)
* mh-lynxrs6k: set SHELL to /bin/bash
@ -425,10 +612,18 @@ Tue Apr 12 12:38:17 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* mh-irix4 (CC): Change -XNh1500 to -XNh2000.
Mon Jan 31 18:40:55 1994 Stu Grossman (grossman at cygnus.com)
* mh-lynxosrs6k: Account for lack of ranlib!
Sat Dec 25 20:03:45 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
* mt-hppa: Delete.
Thu Dec 2 14:35:54 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* mh-irix5: New file for Irix 5.
Tue Nov 16 22:54:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* mh-a68bsd: Define CC to gcc.
@ -480,16 +675,62 @@ Fri Jun 4 16:09:34 1993 Ian Lance Taylor (ian@cygnus.com)
* mh-sysv4 (INSTALL): Use cp, not /usr/ucb/install.
Sat Apr 17 17:19:50 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-delta88: remove extraneous GCC references
Thu Apr 8 11:21:52 1993 Ian Lance Taylor (ian@cygnus.com)
* mt-a29k, mt-ebmon29k, mt-os68k, mt-ose68000, mt-ose68k,
mt-vxworks68, mt-vxworks960: Removed obsolete, unused target
Makefile fragment files.
Wed Mar 31 12:31:56 1993 Ian Lance Taylor (ian@cygnus.com)
* mh-irix4: Bump -XNh value to 1500 to match gcc requirements.
Mon Mar 29 19:59:26 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-sun3: cc needs -J to compile cp-parse.c correctly
* mh-solaris: SunPRO C needs -Xs to be able to get a
working xmakefile for Emacs.
Mon Mar 8 15:05:25 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
* mh-aix386: New file; old mh-aix, plus no-op RANLIB.
Tue Mar 2 21:15:58 1993 Fred Fish (fnf@cygnus.com)
* mh-vaxult2: New file.
Sat Jan 23 20:32:01 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-sco: define X11_LIB to the mess that SCO ODT requires
Tue Dec 29 15:06:00 1992 Ian Lance Taylor (ian@cygnus.com)
* mh-sco: Don't override BISON definition.
Mon Dec 7 06:43:27 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-sco: don't default $(CC) to gcc
Mon Nov 30 14:54:34 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-solaris: rework standard X location to use
$OPENWINHOME, if defined.
* mh-sun: handle X11 include locations
* mh-decstation: define NeedFunctionPrototypes to 0, to
work around dain-bramaged DECwindows include files
Fri Nov 27 18:35:54 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-hpux, mh-solaris: define the "standard" locations for
the vendor supplied X11 headers and libraries
Thu Oct 1 13:50:48 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-solaris: INSTALL is NOT /usr/ucb/install
@ -498,6 +739,11 @@ Mon Aug 24 14:25:35 1992 Ian Lance Taylor (ian@cygnus.com)
* mt-ose68000, mt-ose68k: renamed from mt-OSE*.
Mon Aug 3 15:41:28 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
* mh-solaris: removed the -xs from CFLAGS (let the people
with Sun's C compiler deal with it themselved)
Tue Jul 21 02:11:01 1992 D. V. Henkel-Wallace (gumby@cygnus.com)
* mt-OSE68k, mt-680000: new configs.
@ -506,20 +752,47 @@ Thu Jul 16 17:12:09 1992 K. Richard Pixley (rich@rtl.cygnus.com)
* mh-irix4: merged changes from progressive.
Wed Jul 8 00:01:30 1992 Stu Grossman (grossman at cygnus.com)
* mh-solaris: Use -xs when compiling so that Sun-C puts
a symbol-table into the executable.
Mon Jun 15 12:31:52 1992 Fred Fish (fnf@cygnus.com)
* mh-ncr3000 (INSTALL): Don't use /usr/ucb/install,
it is broken on ncr 3000's.
Tue Jun 9 23:29:38 1992 Per Bothner (bothner@rtl.cygnus.com)
* Everywhere: Change RANLIB=echo>/dev/null (which confuses
some shells - and I don't blame them) to RANLIB=true.
* mh-solaris: Use /usr/ucb/install for INSTALL.
Tue Jun 9 17:18:11 1992 Fred Fish (fnf at cygnus.com)
* mh-ncr3000, mh-sysv4: Add INSTALL.
Sun May 31 14:45:23 1992 Mark Eichin (eichin at cygnus.com)
* mh-solaris2: Add new configuration for Solaris 2 (sysv, no ranlib)
Wed Apr 22 14:38:34 1992 Fred Fish (fnf@cygnus.com)
* mh-delta88, mh-ncr3000: Replace MINUS_G with
CFLAGS per new configuration strategy.
Fri Apr 10 23:10:08 1992 Fred Fish (fnf@cygnus.com)
* mh-ncr3000: Add new configuration for NCR 3000.
Thu Mar 5 12:05:58 1992 Stu Grossman (grossman at cygnus.com)
* mh-irix4: Port to SGI Irix-4.x.
Thu Jan 30 16:17:30 1992 Stu Grossman (grossman at cygnus.com)
* mh-sco: Fix SCO configuration stuff.
Tue Dec 10 00:10:55 1991 K. Richard Pixley (rich at rtl.cygnus.com)
* ChangeLog: fresh changelog.

View File

@ -6,7 +6,7 @@ dnl and doesn't call AC_PROG_CXX_GNU, cause we test for that in AC_PROG_CC_WORK
dnl We are probably using a cross compiler, which will not be able to fully
dnl link an executable. This should really be fixed in autoconf itself.
dnl Find a working G++ cross compiler. This only works for the GNU C++ compiler.
AC_DEFUN(CYG_AC_PROG_CXX_CROSS,
AC_DEFUN([CYG_AC_PROG_CXX_CROSS],
[AC_BEFORE([$0], [AC_PROG_CXXCPP])
AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
@ -35,7 +35,7 @@ fi
])
dnl See if the G++ compiler we found works.
AC_DEFUN(CYG_AC_PROG_GXX_WORKS,
AC_DEFUN([CYG_AC_PROG_GXX_WORKS],
[AC_MSG_CHECKING([whether the G++ compiler ($CXX $CXXFLAGS $LDFLAGS) actually works])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
@ -103,7 +103,7 @@ AC_SUBST(CXX)
dnl ====================================================================
dnl Find a working GCC cross compiler. This only works for the GNU gcc compiler.
dnl This is based on the macros above for G++.
AC_DEFUN(CYG_AC_PROG_CC_CROSS,
AC_DEFUN([CYG_AC_PROG_CC_CROSS],
[AC_BEFORE([$0], [AC_PROG_CCPP])
AC_CHECK_PROGS(CC, cc, gcc)
@ -132,7 +132,7 @@ fi
])
dnl See if the GCC compiler we found works.
AC_DEFUN(CYG_AC_PROG_GCC_WORKS,
AC_DEFUN([CYG_AC_PROG_GCC_WORKS],
[AC_MSG_CHECKING([whether the Gcc compiler ($CC $CFLAGS $LDFLAGS) actually works])
AC_LANG_SAVE
AC_LANG_C
@ -199,7 +199,7 @@ AC_SUBST(CC)
dnl ====================================================================
dnl Find the BFD library in the build tree. This is used to access and
dnl manipulate object or executable files.
AC_DEFUN(CYG_AC_PATH_BFD, [
AC_DEFUN([CYG_AC_PATH_BFD], [
AC_MSG_CHECKING(for the bfd header in the build tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
dnl Look for the header file
@ -241,7 +241,7 @@ AC_SUBST(BFDLIB)
dnl ====================================================================
dnl Find the libiberty library. This defines many commonly used C
dnl functions that exists in various states based on the underlying OS.
AC_DEFUN(CYG_AC_PATH_LIBERTY, [
AC_DEFUN([CYG_AC_PATH_LIBERTY], [
AC_MSG_CHECKING(for the liberty library in the build tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
AC_CACHE_VAL(ac_cv_c_liberty,[
@ -262,7 +262,7 @@ AC_SUBST(LIBERTY)
dnl ====================================================================
dnl Find the opcodes library. This is used to do dissasemblies.
AC_DEFUN(CYG_AC_PATH_OPCODES, [
AC_DEFUN([CYG_AC_PATH_OPCODES], [
AC_MSG_CHECKING(for the opcodes library in the build tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
AC_CACHE_VAL(ac_cv_c_opc,[
@ -284,7 +284,7 @@ AC_SUBST(OPCODESLIB)
dnl ====================================================================
dnl Look for the DejaGnu header file in the source tree. This file
dnl defines the functions used to testing support.
AC_DEFUN(CYG_AC_PATH_DEJAGNU, [
AC_DEFUN([CYG_AC_PATH_DEJAGNU], [
AC_MSG_CHECKING(for the testing support files in the source tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
AC_CACHE_VAL(ac_cv_c_dejagnu,[
@ -335,7 +335,7 @@ AC_SUBST(DEJAGNUHDIR)
dnl ====================================================================
dnl Find the libintl library in the build tree. This is for
dnl internationalization support.
AC_DEFUN(CYG_AC_PATH_INTL, [
AC_DEFUN([CYG_AC_PATH_INTL], [
AC_MSG_CHECKING(for the intl header in the build tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
dnl Look for the header file
@ -375,7 +375,7 @@ AC_SUBST(INTLLIB)
dnl ====================================================================
dnl Find the simulator library.
AC_DEFUN(CYG_AC_PATH_SIM, [
AC_DEFUN([CYG_AC_PATH_SIM], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.. ../../../../../../../../../.."
case "$target_cpu" in
powerpc) target_dir=ppc ;;
@ -457,7 +457,7 @@ AC_SUBST(SIMLIB)
dnl ====================================================================
dnl Find the libiberty library.
AC_DEFUN(CYG_AC_PATH_LIBIBERTY, [
AC_DEFUN([CYG_AC_PATH_LIBIBERTY], [
AC_MSG_CHECKING(for the libiberty library in the build tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
AC_CACHE_VAL(ac_cv_c_libib,[
@ -477,7 +477,7 @@ AC_SUBST(LIBIBERTY)
])
dnl ====================================================================
AC_DEFUN(CYG_AC_PATH_DEVO, [
AC_DEFUN([CYG_AC_PATH_DEVO], [
AC_MSG_CHECKING(for devo headers in the source tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
AC_CACHE_VAL(ac_cv_c_devoh,[
@ -498,7 +498,7 @@ AC_SUBST(DEVOHDIR)
dnl ====================================================================
dnl find the IDE library and headers.
AC_DEFUN(CYG_AC_PATH_IDE, [
AC_DEFUN([CYG_AC_PATH_IDE], [
AC_MSG_CHECKING(for IDE headers in the source tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
IDEHDIR=
@ -591,7 +591,7 @@ AC_SUBST(IDETCLLIB)
dnl ====================================================================
dnl Find all the ILU headers and libraries
AC_DEFUN(CYG_AC_PATH_ILU, [
AC_DEFUN([CYG_AC_PATH_ILU], [
AC_MSG_CHECKING(for ILU kernel headers in the source tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
AC_CACHE_VAL(ac_cv_c_iluh,[
@ -752,7 +752,7 @@ dnl ====================================================================
dnl This defines the byte order for the host. We can't use
dnl AC_C_BIGENDIAN, cause we want to create a config file and
dnl substitue the real value, so the header files work right
AC_DEFUN(CYG_AC_C_ENDIAN, [
AC_DEFUN([CYG_AC_C_ENDIAN], [
AC_MSG_CHECKING(to see if this is a little endian host)
AC_CACHE_VAL(ac_cv_c_little_endian, [
ac_cv_c_little_endian=unknown
@ -788,7 +788,7 @@ dnl Yes, this is ugly, and only used for a canadian cross anyway. This
dnl is just to keep configure from stopping here.
case "${host}" in
changequote(,)
i[3456]86-*-*) ac_cv_c_little_endian=yes ;;
i[3456789]86-*-*) ac_cv_c_little_endian=yes ;;
sparc*-*-*) ac_cv_c_little_endian=no ;;
changequote([,])
*) AC_MSG_WARN(Can't cross compile this test) ;;
@ -809,7 +809,7 @@ AC_SUBST(ENDIAN)
dnl ====================================================================
dnl Look for the path to libgcc, so we can use it to directly link
dnl in libgcc.a with LD.
AC_DEFUN(CYG_AC_PATH_LIBGCC,
AC_DEFUN([CYG_AC_PATH_LIBGCC],
[AC_MSG_CHECKING([Looking for the path to libgcc.a])
AC_LANG_SAVE
AC_LANG_C
@ -844,12 +844,12 @@ dnl Warning: transition of version 9 to 10 will break this algorithm
dnl because 10 sorts before 9. We also look for just tcl. We have to
dnl be careful that we don't match stuff like tclX by accident.
dnl the alternative search directory is involked by --with-tclinclude
AC_DEFUN(CYG_AC_PATH_TCL, [
AC_DEFUN([CYG_AC_PATH_TCL], [
CYG_AC_PATH_TCLH
CYG_AC_PATH_TCLCONFIG
CYG_AC_LOAD_TCLCONFIG
])
AC_DEFUN(CYG_AC_PATH_TCLH, [
AC_DEFUN([CYG_AC_PATH_TCLH], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
no_tcl=true
AC_MSG_CHECKING(for Tcl headers in the source tree)
@ -935,7 +935,7 @@ AC_SUBST(TCLHDIR)
dnl ====================================================================
dnl Ok, lets find the tcl configuration
AC_DEFUN(CYG_AC_PATH_TCLCONFIG, [
AC_DEFUN([CYG_AC_PATH_TCLCONFIG], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
dnl First, look for one uninstalled.
dnl the alternative search directory is invoked by --with-tclconfig
@ -1024,7 +1024,7 @@ AC_SUBST(TCLCONFIG)
dnl Defined as a separate macro so we don't have to cache the values
dnl from PATH_TCLCONFIG (because this can also be cached).
AC_DEFUN(CYG_AC_LOAD_TCLCONFIG, [
AC_DEFUN([CYG_AC_LOAD_TCLCONFIG], [
. $TCLCONFIG
dnl AC_SUBST(TCL_VERSION)
@ -1070,12 +1070,12 @@ dnl AC_SUBST(TCL_UNSHARED_LIB_SUFFIX)
])
dnl ====================================================================
AC_DEFUN(CYG_AC_PATH_TK, [
AC_DEFUN([CYG_AC_PATH_TK], [
CYG_AC_PATH_TKH
CYG_AC_PATH_TKCONFIG
CYG_AC_LOAD_TKCONFIG
])
AC_DEFUN(CYG_AC_PATH_TKH, [
AC_DEFUN([CYG_AC_PATH_TKH], [
#
# Ok, lets find the tk source trees so we can use the headers
# If the directory (presumably symlink) named "tk" exists, use that one
@ -1168,7 +1168,7 @@ fi
AC_SUBST(TKHDIR)
])
AC_DEFUN(CYG_AC_PATH_TKCONFIG, [
AC_DEFUN([CYG_AC_PATH_TKCONFIG], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
dnl First, look for one uninstalled.
dnl the alternative search directory is invoked by --with-tkconfig
@ -1257,7 +1257,7 @@ AC_SUBST(TKCONFIG)
dnl Defined as a separate macro so we don't have to cache the values
dnl from PATH_TKCONFIG (because this can also be cached).
AC_DEFUN(CYG_AC_LOAD_TKCONFIG, [
AC_DEFUN([CYG_AC_LOAD_TKCONFIG], [
if test -f "$TKCONFIG" ; then
. $TKCONFIG
fi
@ -1287,13 +1287,13 @@ dnl AC_SUBST(TK_EXEC_PREFIX)
dnl ====================================================================
dnl Ok, lets find the itcl source trees so we can use the headers
dnl the alternative search directory is involked by --with-itclinclude
AC_DEFUN(CYG_AC_PATH_ITCL, [
AC_DEFUN([CYG_AC_PATH_ITCL], [
CYG_AC_PATH_ITCLH
CYG_AC_PATH_ITCLLIB
CYG_AC_PATH_ITCLSH
CYG_AC_PATH_ITCLMKIDX
])
AC_DEFUN(CYG_AC_PATH_ITCLH, [
AC_DEFUN([CYG_AC_PATH_ITCLH], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
no_itcl=true
AC_MSG_CHECKING(for Itcl headers in the source tree)
@ -1367,7 +1367,7 @@ AC_SUBST(ITCLHDIR)
dnl Ok, lets find the itcl library
dnl First, look for one uninstalled.
dnl the alternative search directory is invoked by --with-itcllib
AC_DEFUN(CYG_AC_PATH_ITCLLIB, [
AC_DEFUN([CYG_AC_PATH_ITCLLIB], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
if test x"${no_itcl}" = x ; then
dnl we reset no_itcl incase something fails here
@ -1454,7 +1454,7 @@ AC_SUBST(ITCLLIB)
dnl ====================================================================
dnl Ok, lets find the itcl source trees so we can use the itcl_sh script
dnl the alternative search directory is involked by --with-itclinclude
AC_DEFUN(CYG_AC_PATH_ITCLSH, [
AC_DEFUN([CYG_AC_PATH_ITCLSH], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
no_itcl=true
AC_MSG_CHECKING(for the itcl_sh script)
@ -1516,7 +1516,7 @@ AC_SUBST(ITCLSH)
dnl ====================================================================
dnl Ok, lets find the itcl source trees so we can use the itcl_sh script
dnl the alternative search directory is involked by --with-itclinclude
AC_DEFUN(CYG_AC_PATH_ITCLMKIDX, [
AC_DEFUN([CYG_AC_PATH_ITCLMKIDX], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
no_itcl=true
AC_MSG_CHECKING(for itcl_mkindex.tcl script)
@ -1582,11 +1582,11 @@ AC_SUBST(ITCLMKIDX)
dnl ====================================================================
dnl Ok, lets find the tix source trees so we can use the headers
dnl the alternative search directory is involked by --with-tixinclude
AC_DEFUN(CYG_AC_PATH_TIX, [
AC_DEFUN([CYG_AC_PATH_TIX], [
CYG_AC_PATH_TIXH
CYG_AC_PATH_TIXLIB
])
AC_DEFUN(CYG_AC_PATH_TIXH, [
AC_DEFUN([CYG_AC_PATH_TIXH], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
no_tix=true
AC_MSG_CHECKING(for Tix headers in the source tree)
@ -1663,7 +1663,7 @@ fi
AC_SUBST(TIXHDIR)
])
AC_DEFUN(CYG_AC_PATH_TIXCONFIG, [
AC_DEFUN([CYG_AC_PATH_TIXCONFIG], [
#
# Ok, lets find the tix configuration
# First, look for one uninstalled.
@ -1737,7 +1737,7 @@ fi
# Defined as a separate macro so we don't have to cache the values
# from PATH_TIXCONFIG (because this can also be cached).
AC_DEFUN(CYG_AC_LOAD_TIXCONFIG, [
AC_DEFUN([CYG_AC_LOAD_TIXCONFIG], [
if test -f "$TIXCONFIG" ; then
. $TIXCONFIG
fi
@ -1746,7 +1746,7 @@ AC_DEFUN(CYG_AC_LOAD_TIXCONFIG, [
AC_SUBST(TIX_LIB_FULL_PATH)
])
AC_DEFUN(CYG_AC_PATH_ITCLCONFIG, [
AC_DEFUN([CYG_AC_PATH_ITCLCONFIG], [
#
# Ok, lets find the itcl configuration
# First, look for one uninstalled.
@ -1820,7 +1820,7 @@ fi
# Defined as a separate macro so we don't have to cache the values
# from PATH_ITCLCONFIG (because this can also be cached).
AC_DEFUN(CYG_AC_LOAD_ITCLCONFIG, [
AC_DEFUN([CYG_AC_LOAD_ITCLCONFIG], [
if test -f "$ITCLCONFIG" ; then
. $ITCLCONFIG
fi
@ -1833,7 +1833,7 @@ AC_DEFUN(CYG_AC_LOAD_ITCLCONFIG, [
])
AC_DEFUN(CYG_AC_PATH_ITKCONFIG, [
AC_DEFUN([CYG_AC_PATH_ITKCONFIG], [
#
# Ok, lets find the itk configuration
# First, look for one uninstalled.
@ -1907,7 +1907,7 @@ fi
# Defined as a separate macro so we don't have to cache the values
# from PATH_ITKCONFIG (because this can also be cached).
AC_DEFUN(CYG_AC_LOAD_ITKCONFIG, [
AC_DEFUN([CYG_AC_LOAD_ITKCONFIG], [
if test -f "$ITKCONFIG" ; then
. $ITKCONFIG
fi
@ -1921,11 +1921,11 @@ AC_DEFUN(CYG_AC_LOAD_ITKCONFIG, [
dnl ====================================================================
dnl Ok, lets find the libgui source trees so we can use the headers
dnl the alternative search directory is involked by --with-libguiinclude
AC_DEFUN(CYG_AC_PATH_LIBGUI, [
AC_DEFUN([CYG_AC_PATH_LIBGUI], [
CYG_AC_PATH_LIBGUIH
CYG_AC_PATH_LIBGUILIB
])
AC_DEFUN(CYG_AC_PATH_LIBGUIH, [
AC_DEFUN([CYG_AC_PATH_LIBGUIH], [
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../..../../../../../../../../../../.."
no_libgui=true
AC_MSG_CHECKING(for Libgui headers in the source tree)
@ -1995,7 +1995,7 @@ AC_SUBST(LIBGUIHDIR)
dnl ====================================================================
dnl find the GUI library
AC_DEFUN(CYG_AC_PATH_LIBGUILIB, [
AC_DEFUN([CYG_AC_PATH_LIBGUILIB], [
AC_MSG_CHECKING(for GUI library in the build tree)
dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.."
dnl look for the library

View File

@ -1,7 +1,5 @@
# Configuration for Harris CX/UX 7 (and maybe 6), based on sysv4 configuration.
RANLIB = true
# The l flag generates a warning from the SVR4 archiver, remove it.
AR_FLAGS = cq

View File

@ -1,6 +1,4 @@
# Host Makefile fragment for NEC MIPS SVR4.
RANLIB = true
# NEC -lX11 needs some other libraries.
X11_EXTRA_LIBS = -lsocket -lnsl

View File

@ -1 +0,0 @@
RANLIB = true

View File

@ -1,4 +1,3 @@
RANLIB = true
# You may need this if you don't have bison.
# BISON = yacc -Sm10400

View File

@ -1,5 +1,2 @@
# Makefile changes for Suns running Solaris 2
RANLIB = true
X11_EXTRA_LIBS = -lnsl -lsocket

View File

@ -1 +0,0 @@
RANLIB = true

View File

@ -1,5 +1,3 @@
RANLIB = true
# The l flag generates a warning from the SVR4 archiver, remove it.
AR_FLAGS = cr

View File

@ -1,5 +1,3 @@
RANLIB = true
# The l flag generates a warning from the SVR4 archiver, remove it.
AR_FLAGS = cr

View File

@ -1 +0,0 @@
PICFLAG_FOR_TARGET=-fPIC

View File

@ -1 +0,0 @@
PICFLAG_FOR_TARGET=-fPIC

View File

@ -1 +0,0 @@
PICFLAG_FOR_TARGET=-fpic

View File

@ -1 +0,0 @@
PICFLAG_FOR_TARGET=-fPIC

View File

@ -1 +0,0 @@
PICFLAG_FOR_TARGET=-fPIC

View File

@ -1 +0,0 @@
PICFLAG_FOR_TARGET=-fpic

View File

@ -1 +0,0 @@
PICFLAG_FOR_TARGET=`case '${LIBCFLAGS} ${LIBCXXFLAGS}' in *-fpic* ) echo -fpic ;; * ) echo -fPIC ;; esac`

View File

@ -1,4 +1,3 @@
CC_FOR_TARGET = ca732 -ansi
AS_FOR_TARGET = as732
AR_FOR_TARGET = ar732
RANLIB_FOR_TARGET = true

View File

@ -1 +0,0 @@
PICFLAG_FOR_TARGET=-fpic

View File

@ -1,3 +1,12 @@
2003-05-16 Kelley Cook <kelleycook@wideopenwest.com>
* configure.texi: Use "i[3-7]86" in example.
2003-01-02 H.J. Lu <hjl@gnu.org>
* Makefile.in (DESTDIR): New.
(install-info): Use it.
2002-06-11 Nick Clifton <nickc@cambridge.redhat.com>
Import the following patches from the FSF GCC sources:

View File

@ -2,6 +2,8 @@
# Makefile.in for etc
#
DESTDIR =
prefix = @prefix@
exec_prefix = @exec_prefix@
@ -68,17 +70,17 @@ info:
done
install-info: info
$(SHELL) $(srcdir)/../mkinstalldirs $(infodir)
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(infodir)
if test ! -f standards.info; then cd $(srcdir); fi; \
if test -f standards.info; then \
for i in standards.info*; do \
$(INSTALL_DATA) $$i $(infodir)/$$i; \
$(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/$$i; \
done; \
fi
if test ! -f configure.info; then cd $(srcdir); fi; \
if test -f configure.info; then \
for i in configure.info*; do \
$(INSTALL_DATA) $$i $(infodir)/$$i; \
$(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/$$i; \
done; \
fi

View File

@ -1,41 +0,0 @@
/* This file is obj-generic.c and is intended to be a template for
object format specific source files.
Copyright (C) 1987-1992 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS 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.
GAS 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 GAS; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Chars that can be used to separate mant from exp in floating point nums */
char EXP_CHARS[] = "eE";
/* Chars that mean this number is a floating point constant */
/* As in 0f12.456 */
/* or 0d1.2345e12 */
char FLT_CHARS[] = "rRsSfFdDxXpP";
/* These chars start a comment anywhere in a source file (except inside
another comment */
const char comment_chars[] = "#";
/*
* Local Variables:
* comment-column: 0
* fill-column: 131
* End:
*/
/* end of obj-generic.c */

View File

@ -1,79 +0,0 @@
/* This file is obj-generic.h
Copyright 1987, 1988, 1989, 1990, 1991, 1992, 1993, 2000
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GAS 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.
GAS 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 GAS; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
/*
* This file is obj-generic.h and is intended to be a template for
* object format specific header files.
*/
/* define an obj specific macro off which target cpu back ends may key. */
#define OBJ_GENERIC 1
/* include whatever target cpu is appropriate. */
#include "targ-cpu.h"
/*
* SYMBOLS
*/
/*
* If your object format needs to reorder symbols, define this. When
* defined, symbols are kept on a doubly linked list and functions are
* made available for push, insert, append, and delete. If not defined,
* symbols are kept on a singly linked list, only the append and clear
* facilities are available, and they are macros.
*/
/* #define SYMBOLS_NEED_PACKPOINTERS */
/* */
typedef struct
{
void *nothing;
}
obj_symbol_type; /* should be the format's symbol structure */
typedef void *object_headers;
/* symbols have names */
#define S_GET_NAME(s) ("foo") /* get the name of a symbolP */
#define S_SET_NAME(s,v) ;
/* symbols have segments */
#define S_GET_SEGMENT(s) (SEG_UNKNOWN)
#define S_SET_SEGMENT(s,v) ;
/* symbols may be external */
#define S_IS_EXTERNAL(s) (0)
#define S_SET_EXTERNAL(s) ;
/* symbols may or may not be defined */
#define S_IS_DEFINED(s) (0)
#define DEFAULT_MAGIC_NUMBER_FOR_OBJECT_FILE (0) /* your magic number */
#define OBJ_EMIT_LINENO(a,b,c) /* must be *something*. This no-op's it out. */
/*
* Local Variables:
* comment-column: 0
* fill-column: 131
* End:
*/

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -152,7 +152,7 @@ Here is the grammar for the coprocessor table:
char -> any printable character
ltr -> ['a'..'z'|'A'..'Z']
dec -> ['0'..'9']* ; value in decimal
hex -> '0x'['0'..'9' | 'a'..'f' | 'A'..'F']* ; value in hexidecimal
hex -> '0x'['0'..'9' | 'a'..'f' | 'A'..'F']* ; value in hexadecimal
Examples
@ -239,7 +239,7 @@ was deleted from the original format such that we now count the fields.
----
FIXME! should really change lexical analyzer
to recognize 'dreg' etc. in context sensative way.
to recognize 'dreg' etc. in context sensitive way.
Currently function names or mnemonics may be incorrectly parsed as keywords
FIXME! hex is ambiguous with any digit

View File

@ -24,6 +24,8 @@ gnulocaledir = $(prefix)/share/locale
gettextsrcdir = $(prefix)/share/gettext/po
subdir = po
DESTDIR =
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
@ -70,9 +72,7 @@ INSTOBJEXT = @INSTOBJEXT@
.po.gmo:
file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
&& test -w $$file \
&& (rm -f $$file && $(GMSGFMT) -o $$file $< ) \
|| echo "$$file is not writable"
&& rm -f $$file && $(GMSGFMT) -o $$file $<
.po.cat:
sed -f ../intl/po2msg.sed < $< > $*.msg \
@ -113,9 +113,9 @@ install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
if test -r $(MKINSTALLDIRS); then \
$(MKINSTALLDIRS) $(datadir); \
$(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
else \
$(top_srcdir)/mkinstalldirs $(datadir); \
$(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
fi
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
@ -125,7 +125,7 @@ install-data-yes: all
*) destdir=$(localedir);; \
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$$destdir/$$lang/LC_MESSAGES; \
dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
if test -r $(MKINSTALLDIRS); then \
$(MKINSTALLDIRS) $$dir; \
else \
@ -155,12 +155,12 @@ install-data-yes: all
done
if test "$(PACKAGE)" = "gettext"; then \
if test -r $(MKINSTALLDIRS); then \
$(MKINSTALLDIRS) $(gettextsrcdir); \
$(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
else \
$(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
$(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
fi; \
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
$(gettextsrcdir)/Makefile.in.in; \
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
else \
: ; \
fi
@ -173,12 +173,12 @@ uninstall:
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
done
rm -f $(gettextsrcdir)/po-Makefile.in.in
rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
check: all

View File

@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2002-10-30 10:08-0500\n"
"POT-Creation-Date: 2003-07-11 13:58+0930\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -244,97 +244,96 @@ msgstr ""
msgid "%s: file `%s' has no symbols\n"
msgstr ""
#: corefile.c:748
#: corefile.c:758
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr ""
#: gmon_io.c:96 gmon_io.c:159 gmon_io.c:219 gmon_io.c:251 gmon_io.c:422
#: gmon_io.c:449 gmon_io.c:646 gmon_io.c:671
#: gmon_io.c:82
#, c-format
msgid "%s: bits per address has unexpected value of %u\n"
msgid "%s: address size has unexpected value of %u\n"
msgstr ""
#: gmon_io.c:288 gmon_io.c:383
#: gmon_io.c:345 gmon_io.c:440
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr ""
#: gmon_io.c:298 gmon_io.c:432
#: gmon_io.c:355 gmon_io.c:483
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr ""
#: gmon_io.c:309
#: gmon_io.c:366
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr ""
#: gmon_io.c:339
#: gmon_io.c:396
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr ""
#: gmon_io.c:405
#: gmon_io.c:462
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr ""
#: gmon_io.c:465
#: gmon_io.c:510
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr ""
#: gmon_io.c:493
#: gmon_io.c:538
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr ""
#: gmon_io.c:514
#: gmon_io.c:559
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr ""
#: gmon_io.c:547
#: gmon_io.c:592
msgid "time is in ticks, not seconds\n"
msgstr ""
#: gmon_io.c:553 gmon_io.c:742
#: gmon_io.c:598 gmon_io.c:775
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr ""
#: gmon_io.c:560
#: gmon_io.c:605
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr ""
#: gmon_io.c:563
#: gmon_io.c:608
#, c-format
msgid "\t%d histogram record\n"
msgstr ""
#: gmon_io.c:564
#: gmon_io.c:609
#, c-format
msgid "\t%d histogram records\n"
msgstr ""
#: gmon_io.c:566
#: gmon_io.c:611
#, c-format
msgid "\t%d call-graph record\n"
msgstr ""
#: gmon_io.c:567
#: gmon_io.c:612
#, c-format
msgid "\t%d call-graph records\n"
msgstr ""
#: gmon_io.c:569
#: gmon_io.c:614
#, c-format
msgid "\t%d basic-block count record\n"
msgstr ""
#: gmon_io.c:570
#: gmon_io.c:615
#, c-format
msgid "\t%d basic-block count records\n"
msgstr ""

View File

@ -1,270 +0,0 @@
/* Remote target system call callback support.
Copyright 1997 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB.
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. */
/* This interface isn't intended to be specific to any particular kind
of remote (hardware, simulator, whatever). As such, support for it
(e.g. sim/common/callback.c) should *not* live in the simulator source
tree, nor should it live in the gdb source tree. */
/* There are various ways to handle system calls:
1) Have a simulator intercept the appropriate trap instruction and
directly perform the system call on behalf of the target program.
This is the typical way of handling system calls for embedded targets.
[Handling system calls for embedded targets isn't that much of an
oxymoron as running compiler testsuites make use of the capability.]
This method of system call handling is done when STATE_ENVIRONMENT
is ENVIRONMENT_USER.
2) Have a simulator emulate the hardware as much as possible.
If the program running on the real hardware communicates with some sort
of target manager, one would want to be able to run this program on the
simulator as well.
This method of system call handling is done when STATE_ENVIRONMENT
is ENVIRONMENT_OPERATING.
*/
#ifndef CALLBACK_H
#define CALLBACK_H
/* ??? The reason why we check for va_start here should be documented. */
#ifndef va_start
#include <ansidecl.h>
#ifdef ANSI_PROTOTYPES
#include <stdarg.h>
#else
#include <varargs.h>
#endif
#endif
/* Mapping of host/target values. */
/* ??? For debugging purposes, one might want to add a string of the
name of the symbol. */
typedef struct {
int host_val;
int target_val;
} CB_TARGET_DEFS_MAP;
#define MAX_CALLBACK_FDS 10
/* Forward decl for stat/fstat. */
struct stat;
typedef struct host_callback_struct host_callback;
struct host_callback_struct
{
int (*close) PARAMS ((host_callback *,int));
int (*get_errno) PARAMS ((host_callback *));
int (*isatty) PARAMS ((host_callback *, int));
int (*lseek) PARAMS ((host_callback *, int, long , int));
int (*open) PARAMS ((host_callback *, const char*, int mode));
int (*read) PARAMS ((host_callback *,int, char *, int));
int (*read_stdin) PARAMS (( host_callback *, char *, int));
int (*rename) PARAMS ((host_callback *, const char *, const char *));
int (*system) PARAMS ((host_callback *, const char *));
long (*time) PARAMS ((host_callback *, long *));
int (*unlink) PARAMS ((host_callback *, const char *));
int (*write) PARAMS ((host_callback *,int, const char *, int));
int (*write_stdout) PARAMS ((host_callback *, const char *, int));
void (*flush_stdout) PARAMS ((host_callback *));
int (*write_stderr) PARAMS ((host_callback *, const char *, int));
void (*flush_stderr) PARAMS ((host_callback *));
int (*stat) PARAMS ((host_callback *, const char *, struct stat *));
int (*fstat) PARAMS ((host_callback *, int, struct stat *));
/* When present, call to the client to give it the oportunity to
poll any io devices for a request to quit (indicated by a nonzero
return value). */
int (*poll_quit) PARAMS ((host_callback *));
/* Used when the target has gone away, so we can close open
handles and free memory etc etc. */
int (*shutdown) PARAMS ((host_callback *));
int (*init) PARAMS ((host_callback *));
/* depreciated, use vprintf_filtered - Talk to the user on a console. */
void (*printf_filtered) PARAMS ((host_callback *, const char *, ...));
/* Talk to the user on a console. */
void (*vprintf_filtered) PARAMS ((host_callback *, const char *, va_list));
/* Same as vprintf_filtered but to stderr. */
void (*evprintf_filtered) PARAMS ((host_callback *, const char *, va_list));
/* Print an error message and "exit".
In the case of gdb "exiting" means doing a longjmp back to the main
command loop. */
void (*error) PARAMS ((host_callback *, const char *, ...));
int last_errno; /* host format */
int fdmap[MAX_CALLBACK_FDS];
char fdopen[MAX_CALLBACK_FDS];
char alwaysopen[MAX_CALLBACK_FDS];
/* System call numbers. */
CB_TARGET_DEFS_MAP *syscall_map;
/* Errno values. */
CB_TARGET_DEFS_MAP *errno_map;
/* Flags to the open system call. */
CB_TARGET_DEFS_MAP *open_map;
/* Signal numbers. */
CB_TARGET_DEFS_MAP *signal_map;
/* Layout of `stat' struct.
The format is a series of "name,length" pairs separated by colons.
Empty space is indicated with a `name' of "space".
All padding must be explicitly mentioned.
Lengths are in bytes. If this needs to be extended to bits,
use "name.bits".
Example: "st_dev,4:st_ino,4:st_mode,4:..." */
const char *stat_map;
/* Marker for those wanting to do sanity checks.
This should remain the last member of this struct to help catch
miscompilation errors. */
#define HOST_CALLBACK_MAGIC 4705 /* teds constant */
int magic;
};
extern host_callback default_callback;
/* Canonical versions of system call numbers.
It's not intended to willy-nilly throw every system call ever heard
of in here. Only include those that have an important use.
??? One can certainly start a discussion over the ones that are currently
here, but that will always be true. */
/* These are used by the ANSI C support of libc. */
#define CB_SYS_exit 1
#define CB_SYS_open 2
#define CB_SYS_close 3
#define CB_SYS_read 4
#define CB_SYS_write 5
#define CB_SYS_lseek 6
#define CB_SYS_unlink 7
#define CB_SYS_getpid 8
#define CB_SYS_kill 9
#define CB_SYS_fstat 10
/*#define CB_SYS_sbrk 11 - not currently a system call, but reserved. */
/* ARGV support. */
#define CB_SYS_argvlen 12
#define CB_SYS_argv 13
/* These are extras added for one reason or another. */
#define CB_SYS_chdir 14
#define CB_SYS_stat 15
#define CB_SYS_chmod 16
#define CB_SYS_utime 17
#define CB_SYS_time 18
/* Struct use to pass and return information necessary to perform a
system call. */
/* FIXME: Need to consider target word size. */
typedef struct cb_syscall {
/* The target's value of what system call to perform. */
int func;
/* The arguments to the syscall. */
long arg1, arg2, arg3, arg4;
/* The result. */
long result;
/* Some system calls have two results. */
long result2;
/* The target's errno value, or 0 if success.
This is converted to the target's value with host_to_target_errno. */
int errcode;
/* Working space to be used by memory read/write callbacks. */
PTR p1;
PTR p2;
long x1,x2;
/* Callbacks for reading/writing memory (e.g. for read/write syscalls).
??? long or unsigned long might be better to use for the `count'
argument here. We mimic sim_{read,write} for now. Be careful to
test any changes with -Wall -Werror, mixed signed comparisons
will get you. */
int (*read_mem) PARAMS ((host_callback * /*cb*/, struct cb_syscall * /*sc*/,
unsigned long /*taddr*/, char * /*buf*/,
int /*bytes*/));
int (*write_mem) PARAMS ((host_callback * /*cb*/, struct cb_syscall * /*sc*/,
unsigned long /*taddr*/, const char * /*buf*/,
int /*bytes*/));
/* For sanity checking, should be last entry. */
int magic;
} CB_SYSCALL;
/* Magic number sanity checker. */
#define CB_SYSCALL_MAGIC 0x12344321
/* Macro to initialize CB_SYSCALL. Called first, before filling in
any fields. */
#define CB_SYSCALL_INIT(sc) \
do { \
memset ((sc), 0, sizeof (*(sc))); \
(sc)->magic = CB_SYSCALL_MAGIC; \
} while (0)
/* Return codes for various interface routines. */
typedef enum {
CB_RC_OK = 0,
/* generic error */
CB_RC_ERR,
/* either file not found or no read access */
CB_RC_ACCESS,
CB_RC_NO_MEM
} CB_RC;
/* Read in target values for system call numbers, errno values, signals. */
CB_RC cb_read_target_syscall_maps PARAMS ((host_callback *, const char *));
/* Translate target to host syscall function numbers. */
int cb_target_to_host_syscall PARAMS ((host_callback *, int));
/* Translate host to target errno value. */
int cb_host_to_target_errno PARAMS ((host_callback *, int));
/* Translate target to host open flags. */
int cb_target_to_host_open PARAMS ((host_callback *, int));
/* Translate target signal number to host. */
int cb_target_to_host_signal PARAMS ((host_callback *, int));
/* Translate host signal number to target. */
int cb_host_to_target_signal PARAMS ((host_callback *, int));
/* Translate host stat struct to target.
If stat struct ptr is NULL, just compute target stat struct size.
Result is size of target stat struct or 0 if error. */
int cb_host_to_target_stat PARAMS ((host_callback *, const struct stat *, PTR));
/* Perform a system call. */
CB_RC cb_syscall PARAMS ((host_callback *, CB_SYSCALL *));
#endif

View File

@ -1,354 +0,0 @@
/* This file defines the interface between the simulator and gdb.
Copyright 1993, 1994, 1996, 1997, 1998, 2000
Free Software Foundation, Inc.
This file is part of GDB.
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. */
#if !defined (REMOTE_SIM_H)
#define REMOTE_SIM_H 1
#ifdef __cplusplus
extern "C" {
#endif
/* This file is used when building stand-alone simulators, so isolate this
file from gdb. */
/* Pick up CORE_ADDR_TYPE if defined (from gdb), otherwise use same value as
gdb does (unsigned int - from defs.h). */
#ifndef CORE_ADDR_TYPE
typedef unsigned int SIM_ADDR;
#else
typedef CORE_ADDR_TYPE SIM_ADDR;
#endif
/* Semi-opaque type used as result of sim_open and passed back to all
other routines. "desc" is short for "descriptor".
It is up to each simulator to define `sim_state'. */
typedef struct sim_state *SIM_DESC;
/* Values for `kind' arg to sim_open. */
typedef enum {
SIM_OPEN_STANDALONE, /* simulator used standalone (run.c) */
SIM_OPEN_DEBUG /* simulator used by debugger (gdb) */
} SIM_OPEN_KIND;
/* Return codes from various functions. */
typedef enum {
SIM_RC_FAIL = 0,
SIM_RC_OK = 1,
SIM_RC_UNKNOWN_BREAKPOINT = 2,
SIM_RC_INSUFFICIENT_RESOURCES = 3,
SIM_RC_DUPLICATE_BREAKPOINT = 4
} SIM_RC;
/* The bfd struct, as an opaque type. */
struct _bfd;
/* Main simulator entry points. */
/* Create a fully initialized simulator instance.
(This function is called when the simulator is selected from the
gdb command line.)
KIND specifies how the simulator shall be used. Currently there
are only two kinds: stand-alone and debug.
CALLBACK specifies a standard host callback (defined in callback.h).
ABFD, when non NULL, designates a target program. The program is
not loaded.
ARGV is a standard ARGV pointer such as that passed from the
command line. The syntax of the argument list is is assumed to be
``SIM-PROG { SIM-OPTION } [ TARGET-PROGRAM { TARGET-OPTION } ]''.
The trailing TARGET-PROGRAM and args are only valid for a
stand-alone simulator.
On success, the result is a non NULL descriptor that shall be
passed to the other sim_foo functions. While the simulator
configuration can be parameterized by (in decreasing precedence)
ARGV's SIM-OPTION, ARGV's TARGET-PROGRAM and the ABFD argument, the
successful creation of the simulator shall not dependent on the
presence of any of these arguments/options.
Hardware simulator: The created simulator shall be sufficiently
initialized to handle, with out restrictions any client requests
(including memory reads/writes, register fetch/stores and a
resume).
Process simulator: that process is not created until a call to
sim_create_inferior. FIXME: What should the state of the simulator
be? */
SIM_DESC sim_open PARAMS ((SIM_OPEN_KIND kind, struct host_callback_struct *callback, struct _bfd *abfd, char **argv));
/* Destory a simulator instance.
QUITTING is non-zero if we cannot hang on errors.
This may involve freeing target memory and closing any open files
and mmap'd areas. You cannot assume sim_kill has already been
called. */
void sim_close PARAMS ((SIM_DESC sd, int quitting));
/* Load program PROG into the simulators memory.
If ABFD is non-NULL, the bfd for the file has already been opened.
The result is a return code indicating success.
Hardware simulator: Normally, each program section is written into
memory according to that sections LMA using physical (direct)
addressing. The exception being systems, such as PPC/CHRP, which
support more complicated program loaders. A call to this function
should not effect the state of the processor registers. Multiple
calls to this function are permitted and have an accumulative
effect.
Process simulator: Calls to this function may be ignored.
FIXME: Most hardware simulators load the image at the VMA using
virtual addressing.
FIXME: For some hardware targets, before a loaded program can be
executed, it requires the manipulation of VM registers and tables.
Such manipulation should probably (?) occure in
sim_create_inferior. */
SIM_RC sim_load PARAMS ((SIM_DESC sd, char *prog, struct _bfd *abfd, int from_tty));
/* Prepare to run the simulated program.
ABFD, if not NULL, provides initial processor state information.
ARGV and ENV, if non NULL, are NULL terminated lists of pointers.
Hardware simulator: This function shall initialize the processor
registers to a known value. The program counter and possibly stack
pointer shall be set using information obtained from ABFD (or
hardware reset defaults). ARGV and ENV, dependant on the target
ABI, may be written to memory.
Process simulator: After a call to this function, a new process
instance shall exist. The TEXT, DATA, BSS and stack regions shall
all be initialized, ARGV and ENV shall be written to process
address space (according to the applicable ABI) and the program
counter and stack pointer set accordingly. */
SIM_RC sim_create_inferior PARAMS ((SIM_DESC sd, struct _bfd *abfd, char **argv, char **env));
/* Fetch LENGTH bytes of the simulated program's memory. Start fetch
at virtual address MEM and store in BUF. Result is number of bytes
read, or zero if error. */
int sim_read PARAMS ((SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length));
/* Store LENGTH bytes from BUF into the simulated program's
memory. Store bytes starting at virtual address MEM. Result is
number of bytes write, or zero if error. */
int sim_write PARAMS ((SIM_DESC sd, SIM_ADDR mem, unsigned char *buf, int length));
/* Fetch register REGNO storing its raw (target endian) value in the
LENGTH byte buffer BUF. Return the actual size of the register or
zero if REGNO is not applicable.
Legacy implementations ignore LENGTH and always return -1.
If LENGTH does not match the size of REGNO no data is transfered
(the actual register size is still returned). */
int sim_fetch_register PARAMS ((SIM_DESC sd, int regno, unsigned char *buf, int length));
/* Store register REGNO from the raw (target endian) value in BUF.
Return the actual size of the register or zero if REGNO is not
applicable.
Legacy implementations ignore LENGTH and always return -1.
If LENGTH does not match the size of REGNO no data is transfered
(the actual register size is still returned). */
int sim_store_register PARAMS ((SIM_DESC sd, int regno, unsigned char *buf, int length));
/* Print whatever statistics the simulator has collected.
VERBOSE is currently unused and must always be zero. */
void sim_info PARAMS ((SIM_DESC sd, int verbose));
/* Run (or resume) the simulated program.
STEP, when non-zero indicates that only a single simulator cycle
should be emulated.
SIGGNAL, if non-zero is a (HOST) SIGRC value indicating the type of
event (hardware interrupt, signal) to be delivered to the simulated
program.
Hardware simulator: If the SIGRC value returned by
sim_stop_reason() is passed back to the simulator via SIGGNAL then
the hardware simulator shall correctly deliver the hardware event
indicated by that signal. If a value of zero is passed in then the
simulation will continue as if there were no outstanding signal.
The effect of any other SIGGNAL value is is implementation
dependant.
Process simulator: If SIGRC is non-zero then the corresponding
signal is delivered to the simulated program and execution is then
continued. A zero SIGRC value indicates that the program should
continue as normal. */
void sim_resume PARAMS ((SIM_DESC sd, int step, int siggnal));
/* Asynchronous request to stop the simulation.
A nonzero return indicates that the simulator is able to handle
the request */
int sim_stop PARAMS ((SIM_DESC sd));
/* Fetch the REASON why the program stopped.
SIM_EXITED: The program has terminated. SIGRC indicates the target
dependant exit status.
SIM_STOPPED: The program has stopped. SIGRC uses the host's signal
numbering as a way of identifying the reaon: program interrupted by
user via a sim_stop request (SIGINT); a breakpoint instruction
(SIGTRAP); a completed single step (SIGTRAP); an internal error
condition (SIGABRT); an illegal instruction (SIGILL); Access to an
undefined memory region (SIGSEGV); Mis-aligned memory access
(SIGBUS). For some signals information in addition to the signal
number may be retained by the simulator (e.g. offending address),
that information is not directly accessable via this interface.
SIM_SIGNALLED: The program has been terminated by a signal. The
simulator has encountered target code that causes the the program
to exit with signal SIGRC.
SIM_RUNNING, SIM_POLLING: The return of one of these values
indicates a problem internal to the simulator. */
enum sim_stop { sim_running, sim_polling, sim_exited, sim_stopped, sim_signalled };
void sim_stop_reason PARAMS ((SIM_DESC sd, enum sim_stop *reason, int *sigrc));
/* Passthru for other commands that the simulator might support.
Simulators should be prepared to deal with any combination of NULL
or empty CMD. */
void sim_do_command PARAMS ((SIM_DESC sd, char *cmd));
/* Call these functions to set and clear breakpoints at ADDR. */
SIM_RC sim_set_breakpoint PARAMS ((SIM_DESC sd, SIM_ADDR addr));
SIM_RC sim_clear_breakpoint PARAMS ((SIM_DESC sd, SIM_ADDR addr));
SIM_RC sim_clear_all_breakpoints PARAMS ((SIM_DESC sd));
/* These functions are used to enable and disable breakpoints. */
SIM_RC sim_enable_breakpoint PARAMS ((SIM_DESC sd, SIM_ADDR addr));
SIM_RC sim_disable_breakpoint PARAMS ((SIM_DESC sd, SIM_ADDR addr));
SIM_RC sim_enable_all_breakpoints PARAMS ((SIM_DESC sd));
SIM_RC sim_disable_all_breakpoints PARAMS ((SIM_DESC sd));
/* Provide simulator with a default (global) host_callback_struct.
THIS PROCEDURE IS DEPRECIATED.
GDB and NRUN do not use this interface.
This procedure does not take a SIM_DESC argument as it is
used before sim_open. */
void sim_set_callbacks PARAMS ((struct host_callback_struct *));
/* Set the size of the simulator memory array.
THIS PROCEDURE IS DEPRECIATED.
GDB and NRUN do not use this interface.
This procedure does not take a SIM_DESC argument as it is
used before sim_open. */
void sim_size PARAMS ((int i));
/* Single-step simulator with tracing enabled.
THIS PROCEDURE IS DEPRECIATED.
THIS PROCEDURE IS EVEN MORE DEPRECATED THAN SIM_SET_TRACE
GDB and NRUN do not use this interface.
This procedure returns: ``0'' indicating that the simulator should
be continued using sim_trace() calls; ``1'' indicating that the
simulation has finished. */
int sim_trace PARAMS ((SIM_DESC sd));
/* Enable tracing.
THIS PROCEDURE IS DEPRECIATED.
GDB and NRUN do not use this interface.
This procedure returns: ``0'' indicating that the simulator should
be continued using sim_trace() calls; ``1'' indicating that the
simulation has finished. */
void sim_set_trace PARAMS ((void));
/* Configure the size of the profile buffer.
THIS PROCEDURE IS DEPRECIATED.
GDB and NRUN do not use this interface.
This procedure does not take a SIM_DESC argument as it is
used before sim_open. */
void sim_set_profile_size PARAMS ((int n));
/* Kill the running program.
THIS PROCEDURE IS DEPRECIATED.
GDB and NRUN do not use this interface.
This procedure will be replaced as part of the introduction of
multi-cpu simulators. */
void sim_kill PARAMS ((SIM_DESC sd));
#ifdef __cplusplus
}
#endif
#endif /* !defined (REMOTE_SIM_H) */

View File

@ -24,6 +24,8 @@ gnulocaledir = $(prefix)/share/locale
gettextsrcdir = $(prefix)/share/gettext/po
subdir = po
DESTDIR =
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
@ -111,9 +113,9 @@ install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
if test -r $(MKINSTALLDIRS); then \
$(MKINSTALLDIRS) $(datadir); \
$(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
else \
$(top_srcdir)/mkinstalldirs $(datadir); \
$(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
fi
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
@ -123,7 +125,7 @@ install-data-yes: all
*) destdir=$(localedir);; \
esac; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
dir=$$destdir/$$lang/LC_MESSAGES; \
dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
if test -r $(MKINSTALLDIRS); then \
$(MKINSTALLDIRS) $$dir; \
else \
@ -153,12 +155,12 @@ install-data-yes: all
done
if test "$(PACKAGE)" = "gettext"; then \
if test -r $(MKINSTALLDIRS); then \
$(MKINSTALLDIRS) $(gettextsrcdir); \
$(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
else \
$(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
$(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
fi; \
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
$(gettextsrcdir)/Makefile.in.in; \
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
else \
: ; \
fi
@ -171,12 +173,12 @@ uninstall:
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
done
rm -f $(gettextsrcdir)/po-Makefile.in.in
rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
check: all

View File

@ -1,7 +1,6 @@
deffile.h
emultempl/armcoff.em
emultempl/pe.em
ld.h
ldcref.c
ldctor.c
ldctor.h
@ -11,6 +10,7 @@ ldexp.c
ldexp.h
ldfile.c
ldfile.h
ld.h
ldlang.c
ldlang.h
ldlex.h

File diff suppressed because it is too large Load Diff

View File

@ -1,459 +0,0 @@
dnl Process this file with autoconf to produce a configure script
AC_PREREQ(2.13)
AC_INIT(pexecute.c)
# This works around the fact that libtool configuration may change LD
# for this particular configuration, but some shells, instead of
# keeping the changes in LD private, export them just because LD is
# exported. We don't use libtool yet, but some day we might, so...
ORIGINAL_LD_FOR_MULTILIBS=$LD
dnl We use these options to decide which functions to include.
AC_ARG_WITH(target-subdir,
[ --with-target-subdir=SUBDIR Configuring in a subdirectory for target])
AC_ARG_WITH(build-subdir,
[ --with-build-subdir=SUBDIR Configuring in a subdirectory for build])
AC_ARG_WITH(cross-host,
[ --with-cross-host=HOST Configuring with a cross compiler])
AC_ARG_WITH(newlib,
[ --with-newlib Configuring with newlib])
if test "${srcdir}" = "."; then
if test -n "${with_build_subdir}"; then
libiberty_topdir="${srcdir}/../.."
with_target_subdir=
elif test -z "${with_target_subdir}"; then
libiberty_topdir="${srcdir}/.."
else
if test "${with_target_subdir}" != "."; then
libiberty_topdir="${srcdir}/${with_multisrctop}../.."
else
libiberty_topdir="${srcdir}/${with_multisrctop}.."
fi
fi
else
libiberty_topdir="${srcdir}/.."
fi
AC_CONFIG_AUX_DIR($libiberty_topdir)
dnl Very limited version of automake's enable-maintainer-mode
AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
dnl maintainer-mode is disabled by default
AC_ARG_ENABLE(maintainer-mode,
[ --enable-maintainer-mode
enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer],
maintainer_mode=$enableval,
maintainer_mode=no)
AC_MSG_RESULT($maintainer_mode)
if test "$maintainer_mode" = "yes"; then
MAINT=''
NOTMAINT='#'
else
MAINT='#'
NOTMAINT=''
fi
AC_SUBST(MAINT)dnl
AC_SUBST(NOTMAINT)dnl
# Do we have a single-tree copy of texinfo? Even if we do, we can't
# rely on it - libiberty is built before texinfo.
AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
if test "x$MAKEINFO" = "x"; then
MAKEINFO="@echo makeinfo missing; true"
BUILD_INFO=
else
BUILD_INFO=info
case x"`$MAKEINFO --version | grep 'GNU texinfo'`" in
x*\ [[1-3]].* )
MAKEINFO="@echo $MAKEINFO is too old, 4.0 or newer required; true"
BUILD_INFO=
AC_MSG_WARN([
*** Makeinfo is too old. Info documentation will not be built.])
;;
esac
fi
AC_SUBST(MAKEINFO)
AC_SUBST(BUILD_INFO)
AC_CHECK_PROG(PERL, perl, perl, )
if test x"$PERL" = x""; then
HAVE_PERL='#'
else
HAVE_PERL=''
fi
AC_SUBST(HAVE_PERL)
AC_CANONICAL_HOST
dnl When we start using automake:
dnl AM_INIT_AUTOMAKE(libiberty, 1.0)
dnl These must be called before AM_PROG_LIBTOOL, because it may want
dnl to call AC_CHECK_PROG.
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib, :)
LIB_AC_PROG_CC
AC_PROG_CC_C_O
# autoconf is lame and doesn't give us any substitution variable for this.
if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
NO_MINUS_C_MINUS_O=yes
else
OUTPUT_OPTION='-o $@'
fi
AC_SUBST(NO_MINUS_C_MINUS_O)
AC_SUBST(OUTPUT_OPTION)
AC_ISC_POSIX
AC_C_CONST
AC_C_INLINE
dnl When we start using libtool:
dnl Default to a non shared library. This may be overridden by the
dnl configure option --enable-shared.
dnl AM_DISABLE_SHARED
dnl When we start using libtool:
dnl AM_PROG_LIBTOOL
dnl When we start using automake:
dnl AM_CONFIG_HEADER(config.h:config.in)
AC_CONFIG_HEADER(config.h:config.in)
dnl When we start using automake:
dnl AM_MAINTAINER_MODE
dnl AC_EXEEXT
dnl When we start using automake:
dnl AM_PROG_INSTALL
AC_PROG_INSTALL
. ${srcdir}/config.table
host_makefile_frag=${frag}
AC_SUBST_FILE(host_makefile_frag)
# It's OK to check for header files. Although the compiler may not be
# able to link anything, it had better be able to at least compile
# something.
AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h)
AC_HEADER_SYS_WAIT
AC_HEADER_TIME
libiberty_AC_DECLARE_ERRNO
AC_CHECK_TYPE(uintptr_t, unsigned long)
if test $ac_cv_type_uintptr_t = yes
then
AC_DEFINE(HAVE_UINTPTR_T, 1, [Define if you have the \`uintptr_t' type.])
fi
AC_TYPE_PID_T
# This is the list of functions which libiberty will provide if they
# are not available on the host.
funcs="asprintf"
funcs="$funcs atexit"
funcs="$funcs basename"
funcs="$funcs bcmp"
funcs="$funcs bcopy"
funcs="$funcs bsearch"
funcs="$funcs bzero"
funcs="$funcs calloc"
funcs="$funcs clock"
funcs="$funcs ffs"
funcs="$funcs getcwd"
funcs="$funcs getpagesize"
funcs="$funcs index"
funcs="$funcs insque"
funcs="$funcs memchr"
funcs="$funcs memcmp"
funcs="$funcs memcpy"
funcs="$funcs memmove"
funcs="$funcs memset"
funcs="$funcs mkstemps"
funcs="$funcs putenv"
funcs="$funcs random"
funcs="$funcs rename"
funcs="$funcs rindex"
funcs="$funcs setenv"
funcs="$funcs sigsetmask"
funcs="$funcs strcasecmp"
funcs="$funcs strchr"
funcs="$funcs strdup"
funcs="$funcs strncasecmp"
funcs="$funcs strrchr"
funcs="$funcs strstr"
funcs="$funcs strtod"
funcs="$funcs strtol"
funcs="$funcs strtoul"
funcs="$funcs tmpnam"
funcs="$funcs vasprintf"
funcs="$funcs vfprintf"
funcs="$funcs vprintf"
funcs="$funcs vsprintf"
funcs="$funcs waitpid"
# Also in the old function.def file: alloca, vfork, getopt.
vars="sys_errlist sys_nerr sys_siglist"
checkfuncs="getrusage on_exit psignal strerror strsignal sysconf times sbrk gettimeofday"
# These are neither executed nor required, but they help keep
# autoheader happy without adding a bunch of text to acconfig.h.
if test "x" = "y"; then
AC_CHECK_FUNCS(asprintf atexit basename bcmp bcopy bsearch bzero calloc clock)
AC_CHECK_FUNCS(getcwd getpagesize index insque mkstemps memchr memcmp memcpy)
AC_CHECK_FUNCS(memmove memset putenv random rename rindex sigsetmask)
AC_CHECK_FUNCS(strcasecmp setenv strchr strdup strncasecmp strrchr strstr)
AC_CHECK_FUNCS(strtod strtol strtoul tmpnam vasprintf vfprintf vprintf)
AC_CHECK_FUNCS(vsprintf waitpid getrusage on_exit psignal strerror strsignal)
AC_CHECK_FUNCS(sysconf times sbrk gettimeofday ffs)
AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.])
AC_DEFINE(HAVE_SYS_NERR, 1, [Define if you have the sys_nerr variable.])
AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.])
fi
# For each of these functions, if the host does not provide the
# function we want to put FN.o in LIBOBJS, and if the host does
# provide the function, we want to define HAVE_FN in config.h.
setobjs=
CHECK=
target_header_dir=
if test -n "${with_target_subdir}"; then
# We are being configured as a target library. AC_REPLACE_FUNCS
# may not work correctly, because the compiler may not be able to
# link executables. Note that we may still be being configured
# native.
# If we are being configured for newlib, we know which functions
# newlib provide and which ones we will be expected to provide.
if test "x${with_newlib}" = "xyes"; then
LIBOBJS="asprintf.o basename.o insque.o random.o strdup.o vasprintf.o"
for f in $funcs; do
case "$f" in
asprintf | basename | insque | random | strdup | vasprintf)
;;
*)
n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
AC_DEFINE_UNQUOTED($n)
;;
esac
done
# newlib doesnt provide any of the variables in $vars, so we
# dont have to check them here.
# Of the functions in $checkfuncs, newlib only has strerror.
AC_DEFINE_NOAUTOHEADER(HAVE_STRERROR)
setobjs=yes
fi
# We may wish to install the target headers somewhere.
AC_ARG_ENABLE(install-libiberty,
[ --enable-install-libiberty Install headers for end users],
enable_install_libiberty=$enableval,
enable_install_libiberty=no)dnl
# Option parsed, now set things appropriately.
case x"$enable_install_libiberty" in
xyes|x)
target_header_dir=libiberty
;;
xno)
target_header_dir=
;;
*)
# This could be sanity-checked in various ways...
target_header_dir="${enable_install_libiberty}"
;;
esac
else
# Not a target library, so we set things up to run the test suite.
CHECK=check-cplus-dem
fi
AC_SUBST(CHECK)
AC_SUBST(target_header_dir)
case "${host}" in
*-*-cygwin* | *-*-mingw*)
AC_DEFINE_NOAUTOHEADER(HAVE_SYS_ERRLIST)
AC_DEFINE_NOAUTOHEADER(HAVE_SYS_NERR)
;;
esac
if test -z "${setobjs}"; then
case "${host}" in
*-*-vxworks*)
# Handle VxWorks configuration specially, since on VxWorks the
# libraries are actually on the target board, not in the file
# system.
LIBOBJS="basename.o getpagesize.o insque.o random.o strcasecmp.o"
LIBOBJS="$LIBOBJS strncasecmp.o strdup.o vfork.o waitpid.o vasprintf.o"
for f in $funcs; do
case "$f" in
basename | getpagesize | insque | random | strcasecmp)
;;
strncasecmp | strdup | vfork | waitpid | vasprintf)
;;
*)
n=HAVE_`echo $f | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
AC_DEFINE_UNQUOTED($n)
;;
esac
done
# VxWorks doesn't provide any of the variables in $vars, so we
# don't have to check them here.
# Of the functions in $checkfuncs, VxWorks only has strerror.
AC_DEFINE_NOAUTOHEADER(HAVE_STRERROR)
setobjs=yes
;;
esac
fi
if test -z "${setobjs}"; then
case "${host}" in
*-*-cygwin*)
# The Cygwin library actually uses a couple of files from
# libiberty when it is built. If we are building a native
# Cygwin, and we run the tests, we will appear to have these
# files. However, when we go on to build winsup, we will wind up
# with a library which does not have the files, since they should
# have come from libiberty.
# We handle this by removing the functions the winsup library
# provides from our shell variables, so that they appear to be
# missing.
# DJ - only if we're *building* cygwin, not just building *with* cygwin
if test -n "${with_target_subdir}"
then
funcs="`echo $funcs | sed -e 's/random//'`"
LIBOBJS="$LIBOBJS random.o"
vars="`echo $vars | sed -e 's/sys_siglist//'`"
checkfuncs="`echo $checkfuncs | sed -e 's/strsignal//' -e 's/psignal//'`"
fi
;;
*-*-mingw32*)
# Under mingw32, sys_nerr and sys_errlist exist, but they are
# macros, so the test below won't find them.
libiberty_cv_var_sys_nerr=yes
libiberty_cv_var_sys_errlist=yes
;;
*-*-uwin*)
# Under some versions of uwin, vfork is notoriously buggy and the test
# can hang configure; on other versions, vfork exists just as a stub.
# FIXME: This should be removed once vfork in uwin's runtime is fixed.
ac_cv_func_vfork_works=no
# Under uwin 2.0+, sys_nerr and sys_errlist exist, but they are
# macros (actually, these are imported from a DLL, but the end effect
# is the same), so the test below won't find them.
libiberty_cv_var_sys_nerr=yes
libiberty_cv_var_sys_errlist=yes
;;
*-*-*vms*)
# Under VMS, vfork works very different than on Unix. The standard test
# won't work, and it isn't easily adaptable. It makes more sense to
# just force it.
ac_cv_func_vfork_works=yes
;;
esac
# We haven't set the list of objects yet. Use the standard autoconf
# tests. This will only work if the compiler works.
AC_PROG_CC_WORKS
AC_REPLACE_FUNCS($funcs)
libiberty_AC_FUNC_C_ALLOCA
AC_FUNC_VFORK
if test $ac_cv_func_vfork_works = no; then
LIBOBJS="$LIBOBJS vfork.o"
fi
# We only need _doprnt if we might use it to implement v*printf.
if test $ac_cv_func_vprintf != yes \
|| test $ac_cv_func_vfprintf != yes \
|| test $ac_cv_func_vsprintf != yes; then
AC_REPLACE_FUNCS(_doprnt)
else
AC_CHECK_FUNCS(_doprnt)
fi
for v in $vars; do
AC_MSG_CHECKING([for $v])
AC_CACHE_VAL(libiberty_cv_var_$v,
[AC_TRY_LINK([int *p;], [extern int $v []; p = $v;],
[eval "libiberty_cv_var_$v=yes"],
[eval "libiberty_cv_var_$v=no"])])
if eval "test \"`echo '$libiberty_cv_var_'$v`\" = yes"; then
AC_MSG_RESULT(yes)
n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
AC_DEFINE_UNQUOTED($n)
else
AC_MSG_RESULT(no)
fi
done
AC_CHECK_FUNCS($checkfuncs)
fi
libiberty_AC_FUNC_STRNCMP
# Install a library built with a cross compiler in $(tooldir) rather
# than $(libdir).
if test -z "${with_cross_host}"; then
INSTALL_DEST=libdir
else
INSTALL_DEST=tooldir
fi
AC_SUBST(INSTALL_DEST)
# We need multilib support, but only if configuring for the target.
AC_OUTPUT(Makefile testsuite/Makefile,
[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
if test -n "$CONFIG_FILES"; then
if test -n "${with_build_subdir}" || test -n "${with_target_subdir}"; then
# FIXME: We shouldn't need to set ac_file
ac_file=Makefile
LD="${ORIGINAL_LD_FOR_MULTILIBS}"
. ${libiberty_topdir}/config-ml.in
fi
fi],
srcdir=${srcdir}
host=${host}
target=${target}
with_target_subdir=${with_target_subdir}
with_build_subdir=${with_build_subdir}
with_multisubdir=${with_multisubdir}
ac_configure_args="--enable-multilib ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
libiberty_topdir=${libiberty_topdir}
)

View File

@ -1,792 +0,0 @@
/* Utilities to execute a program in a subprocess (possibly linked by pipes
with other subprocesses), and wait for it.
Copyright (C) 1996-2000 Free Software Foundation, Inc.
This file is part of the libiberty library.
Libiberty 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.
Libiberty 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 libiberty; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* This file exports two functions: pexecute and pwait. */
/* This file lives in at least two places: libiberty and gcc.
Don't change one without the other. */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdio.h>
#include <errno.h>
#ifdef NEED_DECLARATION_ERRNO
extern int errno;
#endif
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
#include "libiberty.h"
#include "safe-ctype.h"
/* stdin file number. */
#define STDIN_FILE_NO 0
/* stdout file number. */
#define STDOUT_FILE_NO 1
/* value of `pipe': port index for reading. */
#define READ_PORT 0
/* value of `pipe': port index for writing. */
#define WRITE_PORT 1
static char *install_error_msg = "installation problem, cannot exec `%s'";
/* pexecute: execute a program.
@deftypefn Extension int pexecute (const char *@var{program}, char * const *@var{argv}, const char *@var{this_pname}, const char *@var{temp_base}, char **@var{errmsg_fmt}, char **@var{errmsg_arg}, int flags)
Executes a program.
@var{program} and @var{argv} are the arguments to
@code{execv}/@code{execvp}.
@var{this_pname} is name of the calling program (i.e., @code{argv[0]}).
@var{temp_base} is the path name, sans suffix, of a temporary file to
use if needed. This is currently only needed for MS-DOS ports that
don't use @code{go32} (do any still exist?). Ports that don't need it
can pass @code{NULL}.
(@code{@var{flags} & PEXECUTE_SEARCH}) is non-zero if @env{PATH} should be searched
(??? It's not clear that GCC passes this flag correctly). (@code{@var{flags} &
PEXECUTE_FIRST}) is nonzero for the first process in chain.
(@code{@var{flags} & PEXECUTE_FIRST}) is nonzero for the last process
in chain. The first/last flags could be simplified to only mark the
last of a chain of processes but that requires the caller to always
mark the last one (and not give up early if some error occurs).
It's more robust to require the caller to mark both ends of the chain.
The result is the pid on systems like Unix where we
@code{fork}/@code{exec} and on systems like WIN32 and OS/2 where we
use @code{spawn}. It is up to the caller to wait for the child.
The result is the @code{WEXITSTATUS} on systems like MS-DOS where we
@code{spawn} and wait for the child here.
Upon failure, @var{errmsg_fmt} and @var{errmsg_arg} are set to the
text of the error message with an optional argument (if not needed,
@var{errmsg_arg} is set to @code{NULL}), and @minus{}1 is returned.
@code{errno} is available to the caller to use.
@end deftypefn
@deftypefn Extension int pwait (int @var{pid}, int *@var{status}, int @var{flags})
Waits for a program started by @code{pexecute} to finish.
@var{pid} is the process id of the task to wait for. @var{status} is
the `status' argument to wait. @var{flags} is currently unused (allows
future enhancement without breaking upward compatibility). Pass 0 for now.
The result is the pid of the child reaped, or -1 for failure
(@code{errno} says why).
On systems that don't support waiting for a particular child, @var{pid} is
ignored. On systems like MS-DOS that don't really multitask @code{pwait}
is just a mechanism to provide a consistent interface for the caller.
@end deftypefn
@undocumented pfinish
pfinish: finish generation of script
pfinish is necessary for systems like MPW where a script is generated that
runs the requested programs. */
#ifdef __MSDOS__
/* MSDOS doesn't multitask, but for the sake of a consistent interface
the code behaves like it does. pexecute runs the program, tucks the
exit code away, and returns a "pid". pwait must be called to fetch the
exit code. */
#include <process.h>
/* For communicating information from pexecute to pwait. */
static int last_pid = 0;
static int last_status = 0;
static int last_reaped = 0;
int
pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
const char *program;
char * const *argv;
const char *this_pname;
const char *temp_base;
char **errmsg_fmt, **errmsg_arg;
int flags;
{
int rc;
last_pid++;
if (last_pid < 0)
last_pid = 1;
if ((flags & PEXECUTE_ONE) != PEXECUTE_ONE)
abort ();
#ifdef __DJGPP__
/* ??? What are the possible return values from spawnv? */
rc = (flags & PEXECUTE_SEARCH ? spawnvp : spawnv) (P_WAIT, program, argv);
#else
char *scmd, *rf;
FILE *argfile;
int i, el = flags & PEXECUTE_SEARCH ? 4 : 0;
if (temp_base == 0)
temp_base = choose_temp_base ();
scmd = (char *) xmalloc (strlen (program) + strlen (temp_base) + 6 + el);
rf = scmd + strlen(program) + 2 + el;
sprintf (scmd, "%s%s @%s.gp", program,
(flags & PEXECUTE_SEARCH ? ".exe" : ""), temp_base);
argfile = fopen (rf, "w");
if (argfile == 0)
{
int errno_save = errno;
free (scmd);
errno = errno_save;
*errmsg_fmt = "cannot open `%s.gp'";
*errmsg_arg = temp_base;
return -1;
}
for (i=1; argv[i]; i++)
{
char *cp;
for (cp = argv[i]; *cp; cp++)
{
if (*cp == '"' || *cp == '\'' || *cp == '\\' || ISSPACE (*cp))
fputc ('\\', argfile);
fputc (*cp, argfile);
}
fputc ('\n', argfile);
}
fclose (argfile);
rc = system (scmd);
{
int errno_save = errno;
remove (rf);
free (scmd);
errno = errno_save;
}
#endif
if (rc == -1)
{
*errmsg_fmt = install_error_msg;
*errmsg_arg = (char *)program;
return -1;
}
/* Tuck the status away for pwait, and return a "pid". */
last_status = rc << 8;
return last_pid;
}
/* Use ECHILD if available, otherwise use EINVAL. */
#ifdef ECHILD
#define PWAIT_ERROR ECHILD
#else
#define PWAIT_ERROR EINVAL
#endif
int
pwait (pid, status, flags)
int pid;
int *status;
int flags;
{
/* On MSDOS each pexecute must be followed by it's associated pwait. */
if (pid != last_pid
/* Called twice for the same child? */
|| pid == last_reaped)
{
errno = PWAIT_ERROR;
return -1;
}
/* ??? Here's an opportunity to canonicalize the values in STATUS.
Needed? */
#ifdef __DJGPP__
*status = (last_status >> 8);
#else
*status = last_status;
#endif
last_reaped = last_pid;
return last_pid;
}
#endif /* MSDOS */
#if defined (_WIN32) && ! defined (_UWIN)
#include <process.h>
#ifdef __CYGWIN__
#define fix_argv(argvec) (argvec)
extern int _spawnv ();
extern int _spawnvp ();
#else /* ! __CYGWIN__ */
/* This is a kludge to get around the Microsoft C spawn functions' propensity
to remove the outermost set of double quotes from all arguments. */
static const char * const *
fix_argv (argvec)
char **argvec;
{
int i;
for (i = 1; argvec[i] != 0; i++)
{
int len, j;
char *temp, *newtemp;
temp = argvec[i];
len = strlen (temp);
for (j = 0; j < len; j++)
{
if (temp[j] == '"')
{
newtemp = xmalloc (len + 2);
strncpy (newtemp, temp, j);
newtemp [j] = '\\';
strncpy (&newtemp [j+1], &temp [j], len-j);
newtemp [len+1] = 0;
temp = newtemp;
len++;
j++;
}
}
argvec[i] = temp;
}
for (i = 0; argvec[i] != 0; i++)
{
if (strpbrk (argvec[i], " \t"))
{
int len, trailing_backslash;
char *temp;
len = strlen (argvec[i]);
trailing_backslash = 0;
/* There is an added complication when an arg with embedded white
space ends in a backslash (such as in the case of -iprefix arg
passed to cpp). The resulting quoted strings gets misinterpreted
by the command interpreter -- it thinks that the ending quote
is escaped by the trailing backslash and things get confused.
We handle this case by escaping the trailing backslash, provided
it was not escaped in the first place. */
if (len > 1
&& argvec[i][len-1] == '\\'
&& argvec[i][len-2] != '\\')
{
trailing_backslash = 1;
++len; /* to escape the final backslash. */
}
len += 2; /* and for the enclosing quotes. */
temp = xmalloc (len + 1);
temp[0] = '"';
strcpy (temp + 1, argvec[i]);
if (trailing_backslash)
temp[len-2] = '\\';
temp[len-1] = '"';
temp[len] = '\0';
argvec[i] = temp;
}
}
return (const char * const *) argvec;
}
#endif /* __CYGWIN__ */
#include <io.h>
#include <fcntl.h>
#include <signal.h>
/* mingw32 headers may not define the following. */
#ifndef _P_WAIT
# define _P_WAIT 0
# define _P_NOWAIT 1
# define _P_OVERLAY 2
# define _P_NOWAITO 3
# define _P_DETACH 4
# define WAIT_CHILD 0
# define WAIT_GRANDCHILD 1
#endif
/* Win32 supports pipes */
int
pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
const char *program;
char * const *argv;
const char *this_pname;
const char *temp_base;
char **errmsg_fmt, **errmsg_arg;
int flags;
{
int pid;
int pdes[2], org_stdin, org_stdout;
int input_desc, output_desc;
int retries, sleep_interval;
/* Pipe waiting from last process, to be used as input for the next one.
Value is STDIN_FILE_NO if no pipe is waiting
(i.e. the next command is the first of a group). */
static int last_pipe_input;
/* If this is the first process, initialize. */
if (flags & PEXECUTE_FIRST)
last_pipe_input = STDIN_FILE_NO;
input_desc = last_pipe_input;
/* If this isn't the last process, make a pipe for its output,
and record it as waiting to be the input to the next process. */
if (! (flags & PEXECUTE_LAST))
{
if (_pipe (pdes, 256, O_BINARY) < 0)
{
*errmsg_fmt = "pipe";
*errmsg_arg = NULL;
return -1;
}
output_desc = pdes[WRITE_PORT];
last_pipe_input = pdes[READ_PORT];
}
else
{
/* Last process. */
output_desc = STDOUT_FILE_NO;
last_pipe_input = STDIN_FILE_NO;
}
if (input_desc != STDIN_FILE_NO)
{
org_stdin = dup (STDIN_FILE_NO);
dup2 (input_desc, STDIN_FILE_NO);
close (input_desc);
}
if (output_desc != STDOUT_FILE_NO)
{
org_stdout = dup (STDOUT_FILE_NO);
dup2 (output_desc, STDOUT_FILE_NO);
close (output_desc);
}
pid = (flags & PEXECUTE_SEARCH ? _spawnvp : _spawnv)
(_P_NOWAIT, program, fix_argv(argv));
if (input_desc != STDIN_FILE_NO)
{
dup2 (org_stdin, STDIN_FILE_NO);
close (org_stdin);
}
if (output_desc != STDOUT_FILE_NO)
{
dup2 (org_stdout, STDOUT_FILE_NO);
close (org_stdout);
}
if (pid == -1)
{
*errmsg_fmt = install_error_msg;
*errmsg_arg = program;
return -1;
}
return pid;
}
/* MS CRTDLL doesn't return enough information in status to decide if the
child exited due to a signal or not, rather it simply returns an
integer with the exit code of the child; eg., if the child exited with
an abort() call and didn't have a handler for SIGABRT, it simply returns
with status = 3. We fix the status code to conform to the usual WIF*
macros. Note that WIFSIGNALED will never be true under CRTDLL. */
int
pwait (pid, status, flags)
int pid;
int *status;
int flags;
{
#ifdef __CYGWIN__
return wait (status);
#else
int termstat;
pid = _cwait (&termstat, pid, WAIT_CHILD);
/* ??? Here's an opportunity to canonicalize the values in STATUS.
Needed? */
/* cwait returns the child process exit code in termstat.
A value of 3 indicates that the child caught a signal, but not
which one. Since only SIGABRT, SIGFPE and SIGINT do anything, we
report SIGABRT. */
if (termstat == 3)
*status = SIGABRT;
else
*status = (((termstat) & 0xff) << 8);
return pid;
#endif /* __CYGWIN__ */
}
#endif /* _WIN32 && ! _UWIN */
#ifdef OS2
/* ??? Does OS2 have process.h? */
extern int spawnv ();
extern int spawnvp ();
int
pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
const char *program;
char * const *argv;
const char *this_pname;
const char *temp_base;
char **errmsg_fmt, **errmsg_arg;
int flags;
{
int pid;
if ((flags & PEXECUTE_ONE) != PEXECUTE_ONE)
abort ();
/* ??? Presumably 1 == _P_NOWAIT. */
pid = (flags & PEXECUTE_SEARCH ? spawnvp : spawnv) (1, program, argv);
if (pid == -1)
{
*errmsg_fmt = install_error_msg;
*errmsg_arg = program;
return -1;
}
return pid;
}
int
pwait (pid, status, flags)
int pid;
int *status;
int flags;
{
/* ??? Here's an opportunity to canonicalize the values in STATUS.
Needed? */
int pid = wait (status);
return pid;
}
#endif /* OS2 */
#ifdef MPW
/* MPW pexecute doesn't actually run anything; instead, it writes out
script commands that, when run, will do the actual executing.
For example, in GCC's case, GCC will write out several script commands:
cpp ...
cc1 ...
as ...
ld ...
and then exit. None of the above programs will have run yet. The task
that called GCC will then execute the script and cause cpp,etc. to run.
The caller must invoke pfinish before calling exit. This adds
the finishing touches to the generated script. */
static int first_time = 1;
int
pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
const char *program;
char * const *argv;
const char *this_pname;
const char *temp_base;
char **errmsg_fmt, **errmsg_arg;
int flags;
{
char tmpprogram[255];
char *cp, *tmpname;
int i;
mpwify_filename (program, tmpprogram);
if (first_time)
{
printf ("Set Failed 0\n");
first_time = 0;
}
fputs ("If {Failed} == 0\n", stdout);
/* If being verbose, output a copy of the command. It should be
accurate enough and escaped enough to be "clickable". */
if (flags & PEXECUTE_VERBOSE)
{
fputs ("\tEcho ", stdout);
fputc ('\'', stdout);
fputs (tmpprogram, stdout);
fputc ('\'', stdout);
fputc (' ', stdout);
for (i=1; argv[i]; i++)
{
fputc ('\'', stdout);
/* See if we have an argument that needs fixing. */
if (strchr(argv[i], '/'))
{
tmpname = (char *) xmalloc (256);
mpwify_filename (argv[i], tmpname);
argv[i] = tmpname;
}
for (cp = argv[i]; *cp; cp++)
{
/* Write an Option-d escape char in front of special chars. */
if (strchr("'+", *cp))
fputc ('\266', stdout);
fputc (*cp, stdout);
}
fputc ('\'', stdout);
fputc (' ', stdout);
}
fputs ("\n", stdout);
}
fputs ("\t", stdout);
fputs (tmpprogram, stdout);
fputc (' ', stdout);
for (i=1; argv[i]; i++)
{
/* See if we have an argument that needs fixing. */
if (strchr(argv[i], '/'))
{
tmpname = (char *) xmalloc (256);
mpwify_filename (argv[i], tmpname);
argv[i] = tmpname;
}
if (strchr (argv[i], ' '))
fputc ('\'', stdout);
for (cp = argv[i]; *cp; cp++)
{
/* Write an Option-d escape char in front of special chars. */
if (strchr("'+", *cp))
fputc ('\266', stdout);
fputc (*cp, stdout);
}
if (strchr (argv[i], ' '))
fputc ('\'', stdout);
fputc (' ', stdout);
}
fputs ("\n", stdout);
/* Output commands that arrange to clean up and exit if a failure occurs.
We have to be careful to collect the status from the program that was
run, rather than some other script command. Also, we don't exit
immediately, since necessary cleanups are at the end of the script. */
fputs ("\tSet TmpStatus {Status}\n", stdout);
fputs ("\tIf {TmpStatus} != 0\n", stdout);
fputs ("\t\tSet Failed {TmpStatus}\n", stdout);
fputs ("\tEnd\n", stdout);
fputs ("End\n", stdout);
/* We're just composing a script, can't fail here. */
return 0;
}
int
pwait (pid, status, flags)
int pid;
int *status;
int flags;
{
*status = 0;
return 0;
}
/* Write out commands that will exit with the correct error code
if something in the script failed. */
void
pfinish ()
{
printf ("\tExit \"{Failed}\"\n");
}
#endif /* MPW */
/* include for Unix-like environments but not for Dos-like environments */
#if ! defined (__MSDOS__) && ! defined (OS2) && ! defined (MPW) \
&& ! (defined (_WIN32) && ! defined (_UWIN))
extern int execv ();
extern int execvp ();
int
pexecute (program, argv, this_pname, temp_base, errmsg_fmt, errmsg_arg, flags)
const char *program;
char * const *argv;
const char *this_pname;
const char *temp_base ATTRIBUTE_UNUSED;
char **errmsg_fmt, **errmsg_arg;
int flags;
{
int (*func)() = (flags & PEXECUTE_SEARCH ? execvp : execv);
int pid;
int pdes[2];
int input_desc, output_desc;
int retries, sleep_interval;
/* Pipe waiting from last process, to be used as input for the next one.
Value is STDIN_FILE_NO if no pipe is waiting
(i.e. the next command is the first of a group). */
static int last_pipe_input;
/* If this is the first process, initialize. */
if (flags & PEXECUTE_FIRST)
last_pipe_input = STDIN_FILE_NO;
input_desc = last_pipe_input;
/* If this isn't the last process, make a pipe for its output,
and record it as waiting to be the input to the next process. */
if (! (flags & PEXECUTE_LAST))
{
if (pipe (pdes) < 0)
{
*errmsg_fmt = "pipe";
*errmsg_arg = NULL;
return -1;
}
output_desc = pdes[WRITE_PORT];
last_pipe_input = pdes[READ_PORT];
}
else
{
/* Last process. */
output_desc = STDOUT_FILE_NO;
last_pipe_input = STDIN_FILE_NO;
}
/* Fork a subprocess; wait and retry if it fails. */
sleep_interval = 1;
pid = -1;
for (retries = 0; retries < 4; retries++)
{
pid = fork ();
if (pid >= 0)
break;
sleep (sleep_interval);
sleep_interval *= 2;
}
switch (pid)
{
case -1:
*errmsg_fmt = "fork";
*errmsg_arg = NULL;
return -1;
case 0: /* child */
/* Move the input and output pipes into place, if necessary. */
if (input_desc != STDIN_FILE_NO)
{
close (STDIN_FILE_NO);
dup (input_desc);
close (input_desc);
}
if (output_desc != STDOUT_FILE_NO)
{
close (STDOUT_FILE_NO);
dup (output_desc);
close (output_desc);
}
/* Close the parent's descs that aren't wanted here. */
if (last_pipe_input != STDIN_FILE_NO)
close (last_pipe_input);
/* Exec the program. */
(*func) (program, argv);
fprintf (stderr, "%s: ", this_pname);
fprintf (stderr, install_error_msg, program);
fprintf (stderr, ": %s\n", xstrerror (errno));
exit (-1);
/* NOTREACHED */
return 0;
default:
/* In the parent, after forking.
Close the descriptors that we made for this child. */
if (input_desc != STDIN_FILE_NO)
close (input_desc);
if (output_desc != STDOUT_FILE_NO)
close (output_desc);
/* Return child's process number. */
return pid;
}
}
int
pwait (pid, status, flags)
int pid;
int *status;
int flags ATTRIBUTE_UNUSED;
{
/* ??? Here's an opportunity to canonicalize the values in STATUS.
Needed? */
#ifdef VMS
pid = waitpid (-1, status, 0);
#else
pid = wait (status);
#endif
return pid;
}
#endif /* ! __MSDOS__ && ! OS2 && ! MPW && ! (_WIN32 && ! _UWIN) */

File diff suppressed because it is too large Load Diff