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:
commit
d1728c43cb
File diff suppressed because it is too large
Load Diff
@ -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
|
@ -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"
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
%}
|
||||
%%
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -1,6 +1,4 @@
|
||||
# Host Makefile fragment for NEC MIPS SVR4.
|
||||
|
||||
RANLIB = true
|
||||
|
||||
# NEC -lX11 needs some other libraries.
|
||||
X11_EXTRA_LIBS = -lsocket -lnsl
|
||||
|
@ -1 +0,0 @@
|
||||
RANLIB = true
|
@ -1,4 +1,3 @@
|
||||
RANLIB = true
|
||||
# You may need this if you don't have bison.
|
||||
# BISON = yacc -Sm10400
|
||||
|
||||
|
@ -1,5 +1,2 @@
|
||||
# Makefile changes for Suns running Solaris 2
|
||||
|
||||
RANLIB = true
|
||||
|
||||
X11_EXTRA_LIBS = -lnsl -lsocket
|
||||
|
@ -1 +0,0 @@
|
||||
RANLIB = true
|
@ -1,5 +1,3 @@
|
||||
RANLIB = true
|
||||
|
||||
# The l flag generates a warning from the SVR4 archiver, remove it.
|
||||
AR_FLAGS = cr
|
||||
|
||||
|
@ -1,5 +1,3 @@
|
||||
RANLIB = true
|
||||
|
||||
# The l flag generates a warning from the SVR4 archiver, remove it.
|
||||
AR_FLAGS = cr
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
PICFLAG_FOR_TARGET=-fPIC
|
@ -1 +0,0 @@
|
||||
PICFLAG_FOR_TARGET=-fPIC
|
@ -1 +0,0 @@
|
||||
PICFLAG_FOR_TARGET=-fpic
|
@ -1 +0,0 @@
|
||||
PICFLAG_FOR_TARGET=-fPIC
|
@ -1 +0,0 @@
|
||||
PICFLAG_FOR_TARGET=-fPIC
|
@ -1 +0,0 @@
|
||||
PICFLAG_FOR_TARGET=-fpic
|
@ -1 +0,0 @@
|
||||
PICFLAG_FOR_TARGET=`case '${LIBCFLAGS} ${LIBCXXFLAGS}' in *-fpic* ) echo -fpic ;; * ) echo -fPIC ;; esac`
|
@ -1,4 +1,3 @@
|
||||
CC_FOR_TARGET = ca732 -ansi
|
||||
AS_FOR_TARGET = as732
|
||||
AR_FOR_TARGET = ar732
|
||||
RANLIB_FOR_TARGET = true
|
||||
|
@ -1 +0,0 @@
|
||||
PICFLAG_FOR_TARGET=-fpic
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 */
|
@ -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
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 ""
|
||||
|
@ -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
|
@ -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) */
|
@ -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
|
||||
|
||||
|
@ -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
@ -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}
|
||||
)
|
@ -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
Loading…
x
Reference in New Issue
Block a user