mirror of
git://sourceware.org/git/glibc.git
synced 2026-09-09 05:59:27 +08:00
Compare commits
445
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a23b24ae85 | ||
|
|
189c890530 | ||
|
|
4d588d1c1b | ||
|
|
b083049a78 | ||
|
|
882d5bb343 | ||
|
|
77b341f865 | ||
|
|
f8a1beb6b1 | ||
|
|
081eec66de | ||
|
|
79effba1aa | ||
|
|
4768722739 | ||
|
|
2a34627a6c | ||
|
|
a92d659b34 | ||
|
|
0cf19868c9 | ||
|
|
0ec75faf62 | ||
|
|
99b01c26a2 | ||
|
|
4f4507a22c | ||
|
|
0135043713 | ||
|
|
89075c285f | ||
|
|
98347408ff | ||
|
|
970ab68b6e | ||
|
|
df25ffc348 | ||
|
|
355e5a9698 | ||
|
|
d08aaae1b2 | ||
|
|
3aa2699d90 | ||
|
|
cb5a459579 | ||
|
|
573330a9fd | ||
|
|
083f449cce | ||
|
|
34b4bc6c2b | ||
|
|
c09c99a646 | ||
|
|
7d8a5e40cb | ||
|
|
474618f079 | ||
|
|
689cd45252 | ||
|
|
b8a255823e | ||
|
|
dfb39f6c93 | ||
|
|
5031ca7054 | ||
|
|
485eb0d184 | ||
|
|
26f8104784 | ||
|
|
07e0345167 | ||
|
|
894dbda855 | ||
|
|
f80a4f6e0c | ||
|
|
d677a1bcdb | ||
|
|
96a35fdc66 | ||
|
|
3e4cf3712d | ||
|
|
4260bf0da4 | ||
|
|
de9da430be | ||
|
|
cc3af55244 | ||
|
|
00905ad925 | ||
|
|
938e848771 | ||
|
|
8d1927ffc8 | ||
|
|
bd5de616e3 | ||
|
|
b3af0a7c12 | ||
|
|
c1a990bf75 | ||
|
|
cdbec47f90 | ||
|
|
2de56a30e0 | ||
|
|
b9d2efe606 | ||
|
|
9e384e26ff | ||
|
|
371b2f5b44 | ||
|
|
6d58de1563 | ||
|
|
26a1ee568c | ||
|
|
0a37128d71 | ||
|
|
80bdcedbc0 | ||
|
|
1e7aa7a219 | ||
|
|
0762715c25 | ||
|
|
2c11fe3a7c | ||
|
|
b8d8a25b24 | ||
|
|
f6aaf5272f | ||
|
|
e8628d1b29 | ||
|
|
6e1cc1f501 | ||
|
|
66366ecc0e | ||
|
|
e069581c70 | ||
|
|
fe68c72be5 | ||
|
|
8b8fd1a8d6 | ||
|
|
b887ee2281 | ||
|
|
625b5535c8 | ||
|
|
5806e9e7ff | ||
|
|
bd6da23cad | ||
|
|
07a4e1cf8e | ||
|
|
f91afe2d2d | ||
|
|
6c5f7284af | ||
|
|
29b436a764 | ||
|
|
92013f98ef | ||
|
|
a0308b1212 | ||
|
|
4169fe63e6 | ||
|
|
d56532fe29 | ||
|
|
570440a2c0 | ||
|
|
c7eecb53b2 | ||
|
|
a2c3a8a754 | ||
|
|
863ac339aa | ||
|
|
82372ea939 | ||
|
|
6c7eaa9206 | ||
|
|
99731fbaae | ||
|
|
d2e1ff2889 | ||
|
|
3756823b75 | ||
|
|
69bb9f499e | ||
|
|
7c9b5e4d47 | ||
|
|
60c74efa35 | ||
|
|
6083735ab9 | ||
|
|
0d69c39a64 | ||
|
|
813e69352a | ||
|
|
089d0bcd7f | ||
|
|
4d2d58a467 | ||
|
|
2ef76f6528 | ||
|
|
9c63378327 | ||
|
|
bdb64f57f1 | ||
|
|
8595b3b943 | ||
|
|
28f2b23e68 | ||
|
|
1f6935a45f | ||
|
|
8de1cf5ef0 | ||
|
|
ca0f823519 | ||
|
|
0c7bbb0c5a | ||
|
|
01998b2942 | ||
|
|
4086f80da4 | ||
|
|
d36f40995a | ||
|
|
7658a957b3 | ||
|
|
1b7ecbe56c | ||
|
|
bd099ec827 | ||
|
|
9c4140bada | ||
|
|
336c2454d6 | ||
|
|
ad48761644 | ||
|
|
1ba2b81202 | ||
|
|
5c08d16634 | ||
|
|
559b35efda | ||
|
|
26a5d544b3 | ||
|
|
f58e235346 | ||
|
|
da62bdd4fc | ||
|
|
f790b2ac93 | ||
|
|
7403c90040 | ||
|
|
af17378eb5 | ||
|
|
07a7b26ef0 | ||
|
|
6611bd6dda | ||
|
|
ee225270e0 | ||
|
|
20af6843b8 | ||
|
|
0efeb49287 | ||
|
|
24555ab3b7 | ||
|
|
53b13c6187 | ||
|
|
a05f4b051e | ||
|
|
3e821e10d3 | ||
|
|
41496cdbc2 | ||
|
|
c608b3cd86 | ||
|
|
81aee4d8d7 | ||
|
|
5e7f616524 | ||
|
|
3d090a1c2f | ||
|
|
25d13c5064 | ||
|
|
07a83edd21 | ||
|
|
66ee8cfa4b | ||
|
|
c266d1804f | ||
|
|
4367272fd2 | ||
|
|
751dd17708 | ||
|
|
172f28d433 | ||
|
|
4233e0ed19 | ||
|
|
0b9cfd5991 | ||
|
|
11c2fa07bc | ||
|
|
04614916ff | ||
|
|
741e657af7 | ||
|
|
85e8144969 | ||
|
|
8a1637a823 | ||
|
|
604b91d6f0 | ||
|
|
3f0c5820cf | ||
|
|
d82cc2e950 | ||
|
|
17c2c6cd56 | ||
|
|
6a7cb14a81 | ||
|
|
1af43fd7eb | ||
|
|
bb7b8af37b | ||
|
|
ef45101163 | ||
|
|
cdbfff4607 | ||
|
|
35a7d84f65 | ||
|
|
0e5e2ce838 | ||
|
|
9342feea05 | ||
|
|
3a9ba37fe8 | ||
|
|
da91445ec3 | ||
|
|
49e7737729 | ||
|
|
b005663f3a | ||
|
|
19fdfe298d | ||
|
|
cc3cdb18a2 | ||
|
|
794d3ae39b | ||
|
|
a0ab2d17db | ||
|
|
fd72c76124 | ||
|
|
a7efbb3471 | ||
|
|
cd55b09de4 | ||
|
|
b72cf02093 | ||
|
|
cdf3afded5 | ||
|
|
d91df270ea | ||
|
|
fea1b809a4 | ||
|
|
3542d62676 | ||
|
|
c4f0da0d56 | ||
|
|
c65652ec7a | ||
|
|
5e886ed714 | ||
|
|
6172c94607 | ||
|
|
7e97461d46 | ||
|
|
1bdd98e3ed | ||
|
|
04d1ae8c4e | ||
|
|
ba2ee02dbf | ||
|
|
2e0e120f2a | ||
|
|
9b0a6cee0c | ||
|
|
43269d67ae | ||
|
|
cb6f921e11 | ||
|
|
6dc63bcf20 | ||
|
|
e279ce70c6 | ||
|
|
b5aef3124f | ||
|
|
f0a46e3173 | ||
|
|
2d3f35f3b4 | ||
|
|
0eb7585e82 | ||
|
|
1d5cd731f3 | ||
|
|
30752e0683 | ||
|
|
1362c6058a | ||
|
|
5159aa5c02 | ||
|
|
56480f1c56 | ||
|
|
115b5434f7 | ||
|
|
fdb99b1bd9 | ||
|
|
bb663848f0 | ||
|
|
9903c9da37 | ||
|
|
0b5f32df49 | ||
|
|
087e27ff22 | ||
|
|
a41f8fd242 | ||
|
|
fd292249a2 | ||
|
|
5f7062779f | ||
|
|
f8ecfaf0f9 | ||
|
|
00a8966944 | ||
|
|
68a743d253 | ||
|
|
a3dd87b380 | ||
|
|
a6877d2677 | ||
|
|
e0ceebea59 | ||
|
|
6afa4628f3 | ||
|
|
09ab1aacfb | ||
|
|
f20bd94ad7 | ||
|
|
191d62479c | ||
|
|
1fb111861b | ||
|
|
924b60fe08 | ||
|
|
0e42499f6f | ||
|
|
eb23f97ef0 | ||
|
|
4b77b2f8bb | ||
|
|
1da9f3f5f5 | ||
|
|
bc541b4b68 | ||
|
|
3068508dba | ||
|
|
3703b10b6f | ||
|
|
be91f858ad | ||
|
|
99c7bdfd3d | ||
|
|
e2ba9ac91d | ||
|
|
0f178892c6 | ||
|
|
72afff15ed | ||
|
|
19e6317f58 | ||
|
|
fc8973d4e3 | ||
|
|
670d1f26f3 | ||
|
|
f82e8b38a1 | ||
|
|
b47cac74e3 | ||
|
|
b9d638fcd4 | ||
|
|
d8441947d4 | ||
|
|
01ff174aeb | ||
|
|
117a8fcbcd | ||
|
|
6b30a99829 | ||
|
|
936cb88815 | ||
|
|
1dd106fb02 | ||
|
|
d71eb21438 | ||
|
|
c6636f69fa | ||
|
|
355b9ae4bc | ||
|
|
2f245ae37c | ||
|
|
48eeade786 | ||
|
|
cb47b9a159 | ||
|
|
4ca67fe172 | ||
|
|
9de3145ddd | ||
|
|
bc9d3ed73f | ||
|
|
094e45d49d | ||
|
|
cd1bc5a045 | ||
|
|
7969fed273 | ||
|
|
bc50216158 | ||
|
|
4d31cea226 | ||
|
|
4e814796bb | ||
|
|
8d11d8174f | ||
|
|
d6d99d12f9 | ||
|
|
2295e95813 | ||
|
|
5a6d39adc1 | ||
|
|
ea2ad16a09 | ||
|
|
71919c7272 | ||
|
|
feab180d17 | ||
|
|
c7aca6f6bd | ||
|
|
d411ce8525 | ||
|
|
d2ddfa4164 | ||
|
|
4d20a458e5 | ||
|
|
0f25460908 | ||
|
|
f58c1b068e | ||
|
|
ce5922110a | ||
|
|
ba39129c14 | ||
|
|
d97e5d3cd0 | ||
|
|
667217ce8e | ||
|
|
5c87d67634 | ||
|
|
249b3724ed | ||
|
|
a75a5b6ad6 | ||
|
|
bd09d69b2e | ||
|
|
702b909d14 | ||
|
|
c3980b2cc1 | ||
|
|
fa24269a63 | ||
|
|
059f928f81 | ||
|
|
538baf4819 | ||
|
|
5175645757 | ||
|
|
af0bec70ce | ||
|
|
e8e4384834 | ||
|
|
92cb24bf3c | ||
|
|
defb047600 | ||
|
|
27815ec39a | ||
|
|
e3998308eb | ||
|
|
faf3a61855 | ||
|
|
cc7b66164b | ||
|
|
4678f78846 | ||
|
|
afe923264f | ||
|
|
a291118ec5 | ||
|
|
974b0708fa | ||
|
|
e84df956c7 | ||
|
|
58edf87b66 | ||
|
|
da196a5b5f | ||
|
|
b329794bfd | ||
|
|
93dceeb10e | ||
|
|
1ab0549119 | ||
|
|
1cc75359d7 | ||
|
|
4d3a2ae384 | ||
|
|
fc4617e98c | ||
|
|
472003f445 | ||
|
|
cb22d4a460 | ||
|
|
2bce6a471e | ||
|
|
d5030d7ffb | ||
|
|
e3d32a604f | ||
|
|
84dfd1608c | ||
|
|
667305cc20 | ||
|
|
29b58d09d5 | ||
|
|
1a2cd2711f | ||
|
|
59263f403f | ||
|
|
9ca6526ecf | ||
|
|
e6e0e176f2 | ||
|
|
6bb72f8ad4 | ||
|
|
38deee8be7 | ||
|
|
7d4b96d50f | ||
|
|
c9d643915d | ||
|
|
54bba98f82 | ||
|
|
8f6eae2f9a | ||
|
|
713a6a7218 | ||
|
|
4f93e036a4 | ||
|
|
8c8e3c5ed1 | ||
|
|
168dc155cc | ||
|
|
b8492f2963 | ||
|
|
f5c5534163 | ||
|
|
7d31cb29fc | ||
|
|
3353c7e2b4 | ||
|
|
c52dc24ea5 | ||
|
|
f83a748e76 | ||
|
|
edb6aed7eb | ||
|
|
4ecb34f1de | ||
|
|
d12777b436 | ||
|
|
dda691bb29 | ||
|
|
a4a7221477 | ||
|
|
061c77b10a | ||
|
|
5f827f92a5 | ||
|
|
a513d10bad | ||
|
|
622ccdb562 | ||
|
|
b6c22e40c1 | ||
|
|
cf3d45dfbf | ||
|
|
bb8b2b7327 | ||
|
|
ef8eb0c233 | ||
|
|
d1bb18f983 | ||
|
|
fc508b4d77 | ||
|
|
75979fc205 | ||
|
|
150c1ed496 | ||
|
|
0c7163dc35 | ||
|
|
04dd2ec0d3 | ||
|
|
05e99a0bd7 | ||
|
|
c2bd5f098c | ||
|
|
66566e012d | ||
|
|
a22e6290bc | ||
|
|
ec8c77a5ba | ||
|
|
ea82c7fae2 | ||
|
|
0c72e72fda | ||
|
|
143e3b26a8 | ||
|
|
4cf70ccf58 | ||
|
|
28018b6d29 | ||
|
|
44df8bd267 | ||
|
|
3f584b92ef | ||
|
|
9bfaeaffc7 | ||
|
|
01bc6d525b | ||
|
|
01d7b7cf09 | ||
|
|
6e727e8fc1 | ||
|
|
6dcbb40cc0 | ||
|
|
46e9ccea85 | ||
|
|
dd7f37f738 | ||
|
|
0030f0f780 | ||
|
|
9105ced87a | ||
|
|
26b208d274 | ||
|
|
f02f9c8182 | ||
|
|
e088133a39 | ||
|
|
eff9780051 | ||
|
|
d5a6cf276e | ||
|
|
c8b0c2c05a | ||
|
|
ce742e78fe | ||
|
|
15c4564d6c | ||
|
|
45dea6bc6f | ||
|
|
ca754c997a | ||
|
|
cee511f0ec | ||
|
|
cf54ce14d0 | ||
|
|
cb2a8054f4 | ||
|
|
6574b4eae5 | ||
|
|
89d3e4e49c | ||
|
|
67c4805796 | ||
|
|
b564554527 | ||
|
|
10e89a27de | ||
|
|
b0473a0f6e | ||
|
|
e0492b4acc | ||
|
|
673d66205c | ||
|
|
91fae3b292 | ||
|
|
531a23d909 | ||
|
|
bc6f3d5a19 | ||
|
|
091b6505fc | ||
|
|
1cf22aeeb8 | ||
|
|
48ca274919 | ||
|
|
75913a5ef5 | ||
|
|
862ff21bcd | ||
|
|
b77ab157d4 | ||
|
|
ca0350310e | ||
|
|
6b113ae7dd | ||
|
|
3eb10d0154 | ||
|
|
afa10f83bf | ||
|
|
7a817a6932 | ||
|
|
26083b2983 | ||
|
|
31b6743cea | ||
|
|
4ddd6678c0 | ||
|
|
fa1067535a | ||
|
|
cff4fed9a5 | ||
|
|
0cd37396bd | ||
|
|
f89360dc95 | ||
|
|
342f145462 | ||
|
|
bb8098fdd3 | ||
|
|
4dc3856b63 | ||
|
|
27f33e3714 | ||
|
|
a4cd0dce75 | ||
|
|
d1e8859b93 | ||
|
|
7450ca7ccb | ||
|
|
f23286ebd0 | ||
|
|
9e09707af1 | ||
|
|
eecd06f44a | ||
|
|
79a12dff59 | ||
|
|
4ef4e3084a | ||
|
|
9788173e9b | ||
|
|
deed1afdee | ||
|
|
d610d87c6c | ||
|
|
bd38e9e96c | ||
|
|
e80ac225ac | ||
|
|
91c17abf98 | ||
|
|
068ec9cb76 | ||
|
|
0e96cac494 |
+1
-1
@@ -1,7 +1,7 @@
|
||||
*.d *.o *.so *.po *.go *.bo stamp.* *.stamp *.ustamp *.udeps
|
||||
*.gz *.Z *.tar *.tgz
|
||||
=*
|
||||
TODO COPYING* AUTHORS copyr-* copying.*
|
||||
TODO AUTHORS copyr-* copying.*
|
||||
glibc-*
|
||||
|
||||
configparms
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
List of known bugs (certainly very incomplete)
|
||||
----------------------------------------------
|
||||
|
||||
Time-stamp: <1999-04-19T17:58:10-0700 drepper>
|
||||
Time-stamp: <1999-07-06T15:38:22-0700 drepper>
|
||||
|
||||
This following list contains those bugs which I'm aware of. Please
|
||||
make sure that bugs you report are not listed here. If you can fix one
|
||||
|
||||
@@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
+482
@@ -0,0 +1,482 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||
MA 02111-1307, USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
@@ -41,6 +41,9 @@ please let me know.
|
||||
1.15. What's the problem with configure --enable-omitfp?
|
||||
1.16. I get failures during `make check'. What should I do?
|
||||
1.17. What is symbol versioning good for? Do I need it?
|
||||
1.18. How can I compile on my fast ix86 machine a working libc for my slow
|
||||
i386? After installing libc, programs abort with "Illegal
|
||||
Instruction".
|
||||
|
||||
2. Installation and configuration issues
|
||||
|
||||
@@ -231,6 +234,12 @@ EGCS and gcc 2.8.1 shows this:
|
||||
|
||||
Make up your own decision.
|
||||
|
||||
GNU CC versions 2.95 and above are derived from egcs, and they may do even
|
||||
better.
|
||||
|
||||
Please note that gcc 2.95 and 2.95.1 cannot compile glibc on Alpha due to
|
||||
problems in the complex float support.
|
||||
|
||||
|
||||
1.3. When I try to compile glibc I get only error messages.
|
||||
What's wrong?
|
||||
@@ -264,16 +273,8 @@ them.
|
||||
|
||||
1.5. Which compiler should I use for powerpc?
|
||||
|
||||
{GK} You want to use egcs 1.1 or later (together with the right versions
|
||||
of all the other tools, of course).
|
||||
|
||||
In fact, egcs 1.1 has a bug that causes linuxthreads to be
|
||||
miscompiled, resulting in segmentation faults when using condition
|
||||
variables. There is a temporary patch at:
|
||||
|
||||
<http://discus.anu.edu.au/~geoffk/egcs-3.diff>
|
||||
|
||||
Later versions of egcs may fix this problem.
|
||||
{GK} You want to use at least gcc 2.95 (together with the right versions
|
||||
of all the other tools, of course). See also question question 2.8.
|
||||
|
||||
|
||||
1.6. Which tools should I use for ARM?
|
||||
@@ -295,7 +296,9 @@ Binutils 2.9.1.0.16 or later is also required.
|
||||
`message catalog' files containing translated versions of system
|
||||
messages. See ftp://ftp.gnu.org/pub/gnu or better any mirror
|
||||
site. (We distribute compiled message catalogs, but they may not be
|
||||
updated in patches.)
|
||||
updated in patches.) Please note that the required minimal version
|
||||
(0.10.35) of gettext is alpha software and available from
|
||||
ftp://alpha.gnu.org/gnu .
|
||||
|
||||
* Some files are built with special tools. E.g., files ending in .gperf
|
||||
need a `gperf' program. The GNU version (now available in a separate
|
||||
@@ -328,6 +331,9 @@ Binutils 2.9.1.0.16 or later is also required.
|
||||
<yann@plato.uni-paderborn.de> reports 22h48m on Atari TT030
|
||||
(Motorola 68030 @ 32 Mhz, 34 Mb memory)
|
||||
|
||||
A full build of the PowerPC library took 1h on a PowerPC 750@400Mhz w/
|
||||
64MB of RAM, and about 9h on a 601@60Mhz w/ 72Mb.
|
||||
|
||||
If you have some more measurements let me know.
|
||||
|
||||
|
||||
@@ -401,6 +407,11 @@ files, provide support for additional architectures, and just about anything
|
||||
else. The existing makefiles do most of the work; only some few stub rules
|
||||
must be written to get everything running.
|
||||
|
||||
Most add-ons are tightly coupled to a specific GNU libc version. Please
|
||||
check that the add-ons work with the GNU libc. For example the crypt and
|
||||
linuxthreads add-ons have the same numbering scheme as the libc and will in
|
||||
general only work with the corresponding libc.
|
||||
|
||||
|
||||
1.12. My XXX kernel emulates a floating-point coprocessor for me.
|
||||
Should I enable --with-fp?
|
||||
@@ -512,6 +523,23 @@ compatibility - forever! The binary compatibility you lose is not only
|
||||
against the previous version of the GNU libc (version 2.0) but also against
|
||||
all future versions.
|
||||
|
||||
|
||||
1.18. How can I compile on my fast ix86 machine a working libc for my slow
|
||||
i386? After installing libc, programs abort with "Illegal
|
||||
Instruction".
|
||||
|
||||
{AJ} glibc and gcc might generate some instructions on your machine that
|
||||
aren't available on i386. You've got to tell glibc that you're configuring
|
||||
for i386 with adding i386 as your machine, for example:
|
||||
|
||||
../configure --prefix=/usr i386-pc-linux-gnu
|
||||
|
||||
And you need to tell gcc to only generate i386 code, just add `-mcpu=i386'
|
||||
(just -m386 doesn't work) to your CFLAGS.
|
||||
|
||||
{UD} This applies not only to the i386. Compiling on a i686 for any older
|
||||
model will also fail if the above methods are not used.
|
||||
|
||||
|
||||
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
@@ -618,8 +646,8 @@ functions together with glibc.
|
||||
|
||||
The functions are available, as an add-on (see question 1.11). People in the US
|
||||
may get it from the same place they got GNU libc from. People outside the
|
||||
US should get the code from ftp.funet.fi [128.214.248.6] in the directory
|
||||
pub/gnu/funet, or another archive site outside the USA. The README explains
|
||||
US should get the code from ftp.gwdg.de [134.76.11.100] in the directory
|
||||
pub/linux/glibc, or another archive site outside the USA. The README explains
|
||||
how to install the sources.
|
||||
|
||||
If you already have the crypt code on your system the reason for the failure
|
||||
@@ -632,7 +660,7 @@ US.
|
||||
the libc.so which comes with glibc all I get is a core dump.
|
||||
|
||||
{UD} On Linux, gcc sets the dynamic linker to /lib/ld-linux.so.1 unless the
|
||||
user specifies a -dynamic-linker argument. This is the name of the libc5
|
||||
user specifies a --dynamic-linker argument. This is the name of the libc5
|
||||
dynamic linker, which does not work with glibc.
|
||||
|
||||
For casual use of GNU libc you can just specify to the linker
|
||||
@@ -762,6 +790,24 @@ newer since we have explicitly add references to the functions causing the
|
||||
problem. But you nevertheless should use EGCS for other reasons
|
||||
(see question 1.2).
|
||||
|
||||
{GK} On some Linux distributions for PowerPC, you can see this when you have
|
||||
built gcc or egcs from the Web sources (gcc versions 2.95 or earlier), then
|
||||
re-built glibc. This happens because in these versions of gcc, exception
|
||||
handling is implemented using an older method; the people making the
|
||||
distributions are a little ahead of their time.
|
||||
|
||||
A quick solution to this is to find the libgcc.a file that came with the
|
||||
distribution (it would have been installed under /usr/lib/gcc-lib), do
|
||||
`ar x libgcc.a frame.o' to get the frame.o file out, and add a line saying
|
||||
`LDLIBS-c.so += frame.o' to the file `configparms' in the directory you're
|
||||
building in. You can check you've got the right `frame.o' file by running
|
||||
`nm frame.o' and checking that it has the symbols defined that you're
|
||||
missing.
|
||||
|
||||
This will let you build glibc with the C compiler. The C++ compiler
|
||||
will still be binary incompatible with any C++ shared libraries that
|
||||
you got with your distribution.
|
||||
|
||||
|
||||
2.9. How can I compile gcc 2.7.2.1 from the gcc source code using
|
||||
glibc 2.x?
|
||||
|
||||
@@ -73,6 +73,12 @@ EGCS and gcc 2.8.1 shows this:
|
||||
|
||||
Make up your own decision.
|
||||
|
||||
GNU CC versions 2.95 and above are derived from egcs, and they may do even
|
||||
better.
|
||||
|
||||
Please note that gcc 2.95 and 2.95.1 cannot compile glibc on Alpha due to
|
||||
problems in the complex float support.
|
||||
|
||||
?? When I try to compile glibc I get only error messages.
|
||||
What's wrong?
|
||||
|
||||
@@ -103,16 +109,8 @@ them.
|
||||
|
||||
??powerpc Which compiler should I use for powerpc?
|
||||
|
||||
{GK} You want to use egcs 1.1 or later (together with the right versions
|
||||
of all the other tools, of course).
|
||||
|
||||
In fact, egcs 1.1 has a bug that causes linuxthreads to be
|
||||
miscompiled, resulting in segmentation faults when using condition
|
||||
variables. There is a temporary patch at:
|
||||
|
||||
<http://discus.anu.edu.au/~geoffk/egcs-3.diff>
|
||||
|
||||
Later versions of egcs may fix this problem.
|
||||
{GK} You want to use at least gcc 2.95 (together with the right versions
|
||||
of all the other tools, of course). See also question ?excpt.
|
||||
|
||||
??arm Which tools should I use for ARM?
|
||||
|
||||
@@ -132,7 +130,9 @@ Binutils 2.9.1.0.16 or later is also required.
|
||||
`message catalog' files containing translated versions of system
|
||||
messages. See ftp://ftp.gnu.org/pub/gnu or better any mirror
|
||||
site. (We distribute compiled message catalogs, but they may not be
|
||||
updated in patches.)
|
||||
updated in patches.) Please note that the required minimal version
|
||||
(0.10.35) of gettext is alpha software and available from
|
||||
ftp://alpha.gnu.org/gnu .
|
||||
|
||||
* Some files are built with special tools. E.g., files ending in .gperf
|
||||
need a `gperf' program. The GNU version (now available in a separate
|
||||
@@ -165,6 +165,9 @@ Binutils 2.9.1.0.16 or later is also required.
|
||||
<yann@plato.uni-paderborn.de> reports 22h48m on Atari TT030
|
||||
(Motorola 68030 @ 32 Mhz, 34 Mb memory)
|
||||
|
||||
A full build of the PowerPC library took 1h on a PowerPC 750@400Mhz w/
|
||||
64MB of RAM, and about 9h on a 601@60Mhz w/ 72Mb.
|
||||
|
||||
If you have some more measurements let me know.
|
||||
|
||||
?? What version of the Linux kernel headers should be used?
|
||||
@@ -234,6 +237,11 @@ files, provide support for additional architectures, and just about anything
|
||||
else. The existing makefiles do most of the work; only some few stub rules
|
||||
must be written to get everything running.
|
||||
|
||||
Most add-ons are tightly coupled to a specific GNU libc version. Please
|
||||
check that the add-ons work with the GNU libc. For example the crypt and
|
||||
linuxthreads add-ons have the same numbering scheme as the libc and will in
|
||||
general only work with the corresponding libc.
|
||||
|
||||
?? My XXX kernel emulates a floating-point coprocessor for me.
|
||||
Should I enable --with-fp?
|
||||
|
||||
@@ -340,6 +348,23 @@ against the previous version of the GNU libc (version 2.0) but also against
|
||||
all future versions.
|
||||
|
||||
|
||||
?? How can I compile on my fast ix86 machine a working libc for my slow
|
||||
i386? After installing libc, programs abort with "Illegal
|
||||
Instruction".
|
||||
|
||||
{AJ} glibc and gcc might generate some instructions on your machine that
|
||||
aren't available on i386. You've got to tell glibc that you're configuring
|
||||
for i386 with adding i386 as your machine, for example:
|
||||
|
||||
../configure --prefix=/usr i386-pc-linux-gnu
|
||||
|
||||
And you need to tell gcc to only generate i386 code, just add `-mcpu=i386'
|
||||
(just -m386 doesn't work) to your CFLAGS.
|
||||
|
||||
{UD} This applies not only to the i386. Compiling on a i686 for any older
|
||||
model will also fail if the above methods are not used.
|
||||
|
||||
|
||||
? Installation and configuration issues
|
||||
|
||||
?? Can I replace the libc on my Linux system with GNU libc?
|
||||
@@ -439,8 +464,8 @@ functions together with glibc.
|
||||
|
||||
The functions are available, as an add-on (see ?addon). People in the US
|
||||
may get it from the same place they got GNU libc from. People outside the
|
||||
US should get the code from ftp.funet.fi [128.214.248.6] in the directory
|
||||
pub/gnu/funet, or another archive site outside the USA. The README explains
|
||||
US should get the code from ftp.gwdg.de [134.76.11.100] in the directory
|
||||
pub/linux/glibc, or another archive site outside the USA. The README explains
|
||||
how to install the sources.
|
||||
|
||||
If you already have the crypt code on your system the reason for the failure
|
||||
@@ -452,7 +477,7 @@ US.
|
||||
the libc.so which comes with glibc all I get is a core dump.
|
||||
|
||||
{UD} On Linux, gcc sets the dynamic linker to /lib/ld-linux.so.1 unless the
|
||||
user specifies a -dynamic-linker argument. This is the name of the libc5
|
||||
user specifies a --dynamic-linker argument. This is the name of the libc5
|
||||
dynamic linker, which does not work with glibc.
|
||||
|
||||
For casual use of GNU libc you can just specify to the linker
|
||||
@@ -549,7 +574,7 @@ not a symlink to libc.so.6. It should look something like this:
|
||||
|
||||
GROUP ( libc.so.6 libc_nonshared.a )
|
||||
|
||||
?? When I run an executable on one system which I compiled on
|
||||
??excpt When I run an executable on one system which I compiled on
|
||||
another, I get dynamic linker errors. Both systems have the same
|
||||
version of glibc installed. What's wrong?
|
||||
|
||||
@@ -580,6 +605,24 @@ newer since we have explicitly add references to the functions causing the
|
||||
problem. But you nevertheless should use EGCS for other reasons
|
||||
(see ?binsize).
|
||||
|
||||
{GK} On some Linux distributions for PowerPC, you can see this when you have
|
||||
built gcc or egcs from the Web sources (gcc versions 2.95 or earlier), then
|
||||
re-built glibc. This happens because in these versions of gcc, exception
|
||||
handling is implemented using an older method; the people making the
|
||||
distributions are a little ahead of their time.
|
||||
|
||||
A quick solution to this is to find the libgcc.a file that came with the
|
||||
distribution (it would have been installed under /usr/lib/gcc-lib), do
|
||||
`ar x libgcc.a frame.o' to get the frame.o file out, and add a line saying
|
||||
`LDLIBS-c.so += frame.o' to the file `configparms' in the directory you're
|
||||
building in. You can check you've got the right `frame.o' file by running
|
||||
`nm frame.o' and checking that it has the symbols defined that you're
|
||||
missing.
|
||||
|
||||
This will let you build glibc with the C compiler. The C++ compiler
|
||||
will still be binary incompatible with any C++ shared libraries that
|
||||
you got with your distribution.
|
||||
|
||||
?? How can I compile gcc 2.7.2.1 from the gcc source code using
|
||||
glibc 2.x?
|
||||
|
||||
|
||||
@@ -20,9 +20,10 @@ change in the future. Get it from the same place you got the main
|
||||
bundle; the file is `glibc-linuxthreads-VERSION.tar.gz'. Support for
|
||||
the `crypt' function is distributed separately because of United States
|
||||
export restrictions. If you are outside the US or Canada, you must get
|
||||
`crypt' support from a site outside the US, such as `ftp.ifi.uio.no'.
|
||||
(Most non-US mirrors of `ftp.gnu.org' will have it too.) The file you
|
||||
need is `glibc-crypt-VERSION.tar.gz'.
|
||||
`crypt' support from a site outside the US, such as `ftp.gwdg.de'.
|
||||
`ftp.gwdg.de' has the crypt distribution in `pub/linux/glibc'. (Most
|
||||
non-US mirrors of `ftp.gnu.org' will have it too.) The file you need
|
||||
is `glibc-crypt-VERSION.tar.gz'.
|
||||
|
||||
You will need recent versions of several GNU tools: definitely GCC
|
||||
and GNU Make, and possibly others. *Note Tools for Compilation::,
|
||||
@@ -41,6 +42,10 @@ at the top level of the source tree. In the scenario above, you'd type
|
||||
|
||||
$ ../glibc-2.1.0/configure ARGS...
|
||||
|
||||
Please note that even if you're building in a separate build
|
||||
directory, the compiliation needs to modify a few files in the source
|
||||
directory, especially some files in the manual subdirectory.
|
||||
|
||||
`configure' takes many options, but you can get away with knowing only
|
||||
two: `--prefix' and `--enable-add-ons'. The `--prefix' option tells
|
||||
configure where you want glibc installed. This defaults to
|
||||
@@ -82,7 +87,7 @@ will be used, and CFLAGS sets optimization options for the compiler.
|
||||
given with no list, it enables all the add-on packages it finds.
|
||||
If you do not wish to use some add-on package that you have
|
||||
present in your source tree, give this option a list of the
|
||||
add-ons that you _do_ want used, like this:
|
||||
add-ons that you *do* want used, like this:
|
||||
`--enable-add-ons=crypt,linuxthreads'
|
||||
|
||||
`--with-binutils=DIRECTORY'
|
||||
@@ -98,10 +103,6 @@ will be used, and CFLAGS sets optimization options for the compiler.
|
||||
Use this option if your computer lacks hardware floating-point
|
||||
support and your operating system does not emulate an FPU.
|
||||
|
||||
`--disable-static'
|
||||
Don't build static libraries. Static libraries aren't that useful
|
||||
these days, but we recommend you build them in case you need them.
|
||||
|
||||
`--disable-shared'
|
||||
Don't build shared libraries even if we could. Not all systems
|
||||
support shared libraries; you need ELF support and (currently) the
|
||||
@@ -142,10 +143,10 @@ will be used, and CFLAGS sets optimization options for the compiler.
|
||||
compile but use what you say instead of guessing what your system
|
||||
is. This is most useful to change the CPU submodel. For example,
|
||||
if configure guesses your machine as `i586-pc-linux-gnu' but you
|
||||
want to compile a library optimized for 386es, give
|
||||
`--host=i386-pc-linux-gnu' or just `--host=i386-linux'. (A
|
||||
library compiled for a Pentium (`i586') will still work on a 386,
|
||||
but it may be slower.)
|
||||
want to compile a library for 386es, give
|
||||
`--host=i386-pc-linux-gnu' or just `--host=i386-linux' and add the
|
||||
appropriate compiler flags (`-mcpu=i386' will do the trick) to
|
||||
CFLAGS.
|
||||
|
||||
If you give just `--build', configure will get confused.
|
||||
|
||||
@@ -168,7 +169,11 @@ Instead, edit the generated `Makefile' and uncomment the line
|
||||
# PARALLELMFLAGS = -j 4
|
||||
|
||||
You can change the `4' to some other number as appropriate for your
|
||||
system.
|
||||
system. Instead of changing the `Makefile', you could give this option
|
||||
directly to `make' and call it as, e.g. `make PARALLELMFLAGS=-j4'. If
|
||||
you're building in the source directory, you've got to use the latter
|
||||
approach since in this case no new `Makefile' is generated which you
|
||||
can change.
|
||||
|
||||
To build and run some test programs which exercise some of the
|
||||
library facilities, type `make check'. This should complete
|
||||
@@ -202,10 +207,10 @@ or you will end up with a mixture of header files from both libraries,
|
||||
and you won't be able to compile anything. You may also need to
|
||||
reconfigure GCC to work with the new library. The easiest way to do
|
||||
that is to figure out the compiler switches to make it work again
|
||||
(`-Wl,-dynamic-linker=/lib/ld-linux.so.2' should work on Linux systems)
|
||||
and use them to recompile gcc. You can also edit the specs file
|
||||
(`/usr/lib/gcc-lib/TARGET/VERSION/specs'), but that is a bit of a black
|
||||
art.
|
||||
(`-Wl,--dynamic-linker=/lib/ld-linux.so.2' should work on Linux
|
||||
systems) and use them to recompile gcc. You can also edit the specs
|
||||
file (`/usr/lib/gcc-lib/TARGET/VERSION/specs'), but that is a bit of a
|
||||
black art.
|
||||
|
||||
You can install glibc somewhere other than where you configured it
|
||||
to go by setting the `install_root' variable on the command line for
|
||||
@@ -230,6 +235,23 @@ privileges.) If you are using a 2.1 or newer Linux kernel with the
|
||||
this program; otherwise you do. The source for `pt_chown' is in
|
||||
`login/programs/pt_chown.c'.
|
||||
|
||||
After installation you might want to configure the timezone and
|
||||
locale installation of your system. The GNU C library comes with a
|
||||
locale database which gets configured with `localedef'. For example, to
|
||||
set up a German locale with name `de_DE', simply issue the command
|
||||
`localedef -i de_DE -f ISO-8859-1 de_DE'. To configure all locales
|
||||
that are supported by glibc, you can issue from your build directory the
|
||||
command `make localedata/install-locales'.
|
||||
|
||||
To configure the locally used timezone, you can either set the `TZ'
|
||||
environment variable. The script `tzselect' helps you to select the
|
||||
right value. As an example for Germany, tzselect would tell you to use
|
||||
`TZ='Europe/Berlin''. For a system wide installation (the given paths
|
||||
are for an installation with `--prefix=/usr'), link the timezone file
|
||||
which is in `/usr/share/zoneinfo' to the file `/etc/localtime'. For
|
||||
Germany, you might execute `ln -s /usr/share/zoneinfo/Europe/Berlin
|
||||
/etc/localtime'.
|
||||
|
||||
Recommended Tools for Compilation
|
||||
=================================
|
||||
|
||||
@@ -299,14 +321,14 @@ build the GNU C library:
|
||||
Perl is not required, but it is used if present to test the
|
||||
installation. We may decide to use it elsewhere in the future.
|
||||
|
||||
|
||||
If you change any of the `configure.in' files you will also need
|
||||
|
||||
* GNU `autoconf' 2.12 or higher
|
||||
|
||||
and if you change any of the message translation files you will need
|
||||
|
||||
* GNU `gettext' 0.10.35 or later
|
||||
* GNU `gettext' 0.10.35 or later (version 0.10.35 is a alpha release
|
||||
and available via ftp from alpha.gnu.org/gnu)
|
||||
|
||||
You may also need these packages if you upgrade your source tree using
|
||||
patches, although we try to avoid this.
|
||||
@@ -361,11 +383,14 @@ If you are interested in doing a port, please contact the glibc
|
||||
maintainers by sending electronic mail to <bug-glibc@gnu.org>.
|
||||
|
||||
Each case of `iX86' can be `i386', `i486', `i586', or `i686'. All
|
||||
of those configurations produce a library that can run on any of these
|
||||
processors. The library will be optimized for the specified processor,
|
||||
but will not use instructions not available on all of them. If you
|
||||
want the library to use instructions only available on newer
|
||||
processors, give GCC the appropriate `-m' switches via CFLAGS.
|
||||
of those configurations produce a library that can run on this
|
||||
processor and newer processors. The GCC compiler by default generates
|
||||
code that's optimized for the machine it's configured for and will use
|
||||
the instructions available on that machine. For example if your GCC is
|
||||
configured for `i686', gcc will optimize for `i686' and might issue
|
||||
some `i686' specific instructions. To generate code for other models,
|
||||
you have to configure for that model and give GCC the appropriate
|
||||
`-march=' and `-mcpu=' compiler switches via CFLAGS.
|
||||
|
||||
Specific advice for Linux systems
|
||||
=================================
|
||||
@@ -402,7 +427,7 @@ installed there.
|
||||
library on your system against the new library for the sake of new code,
|
||||
but keep the old libraries around for old binaries to use. This is
|
||||
complicated and difficult. Consult the Glibc2 HOWTO at
|
||||
<http://www.imaxx.net/~thrytis/glibc> for details.
|
||||
`http://www.imaxx.net/~thrytis/glibc' for details.
|
||||
|
||||
You cannot use `nscd' with 2.0 kernels, due to bugs in the
|
||||
kernel-side thread support. `nscd' happens to hit these bugs
|
||||
@@ -417,6 +442,13 @@ errors and omissions in this manual. If you report them, they will get
|
||||
fixed. If you don't, no one will ever know about them and they will
|
||||
remain unfixed for all eternity, if not longer.
|
||||
|
||||
It is a good idea to check first that the problem was not reported
|
||||
before. Bugs are documented in two places: The file `BUGS' describes a
|
||||
number of well known bugs and the bug tracking system has a WWW
|
||||
interface at `http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl'. The
|
||||
WWW interface gives you access to open and closed reports. The closed
|
||||
reports normally include a patch or a hint on solving the problem.
|
||||
|
||||
To report a bug, first you must find it. Hopefully, this will be the
|
||||
hard part. Once you've found a bug, make sure it's really a bug. A
|
||||
good way to do this is to see if the GNU C library behaves the same way
|
||||
@@ -441,9 +473,9 @@ you haven't installed it, will be in your build directory. Send your
|
||||
test case, the results you got, the results you expected, and what you
|
||||
think the problem might be (if you've thought of anything). `glibcbug'
|
||||
will insert the configuration information we need to see, and ship the
|
||||
report off to <bug-glibc@gnu.org>. Don't send a message there
|
||||
directly; it is fed to a program that expects mail to be formatted in a
|
||||
particular way. Use the script.
|
||||
report off to <bugs@gnu.org>. Don't send a message there directly; it
|
||||
is fed to a program that expects mail to be formatted in a particular
|
||||
way. Use the script.
|
||||
|
||||
If you are not sure how a function should behave, and this manual
|
||||
doesn't tell you, that's a bug in the manual. Report that too! If the
|
||||
|
||||
@@ -35,7 +35,8 @@ foo:=$(shell echo 'foobar=$(filter %.c %.S %.s %.h,$(distribute))'>&2)
|
||||
ifndef sysdep_dirs
|
||||
# Find all sysdep directories.
|
||||
export sysdep_dirs := $(shell find $(..)sysdeps -type d ! -name bits \
|
||||
! -name CVS ! -name RCS -print)
|
||||
! -name CVS ! -name RCS \
|
||||
! -name SCCS -print)
|
||||
else
|
||||
# Defined by the parent.
|
||||
sysdep_dirs := $(addprefix $(..),$(sysdep_dirs))
|
||||
|
||||
@@ -46,7 +46,8 @@ ifndef sysdep_dirs
|
||||
sysdep_dirs := $(shell find $(..)sysdeps \
|
||||
$(wildcard \
|
||||
$(patsubst %,$(..)%/sysdeps,$(add-ons))) \
|
||||
-type d ! -name RCS ! -name CVS -print)
|
||||
-type d ! -name RCS ! -name CVS \
|
||||
! -name SCCS -print)
|
||||
endif
|
||||
|
||||
# Find all sysdep dirs there are, but putting the ones
|
||||
|
||||
+6
-2
@@ -364,7 +364,11 @@ else
|
||||
# some additional bizarre files.
|
||||
start-installed-name = crt1.o
|
||||
endif
|
||||
|
||||
# On systems that do not need a special startfile for statically linked
|
||||
# binaries, simply set it to the normal name.
|
||||
ifndef static-start-installed-name
|
||||
static-start-installed-name = $(start-installed-name)
|
||||
endif
|
||||
|
||||
# Command for linking programs with the C library.
|
||||
ifndef +link
|
||||
@@ -382,7 +386,7 @@ endif
|
||||
ifndef +link-static
|
||||
+link-static = $(CC) -nostdlib -nostartfiles -static -o $@ \
|
||||
$(sysdep-LDFLAGS) $(LDFLAGS) \
|
||||
$(addprefix $(csu-objpfx),$(start-installed-name)) \
|
||||
$(addprefix $(csu-objpfx),$(static-start-installed-name)) \
|
||||
$(+preinit) $(+prector) \
|
||||
$(filter-out $(addprefix $(csu-objpfx),start.o \
|
||||
$(start-installed-name))\
|
||||
|
||||
@@ -269,7 +269,8 @@ ifdef sysd-dirs-done
|
||||
ifeq ($(versioning),yes)
|
||||
-include $(common-objpfx)sysd-versions
|
||||
$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
|
||||
common-generated += $(version-maps) sysd-versions $(common-objpfx)Versions.all
|
||||
common-generated += $(version-maps)
|
||||
postclean-generated += sysd-versions Versions.all
|
||||
|
||||
ifndef avoid-generated
|
||||
ifneq ($(sysd-versions-subdirs),$(all-subdirs) $(config-sysdirs))
|
||||
@@ -286,7 +287,7 @@ $(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \
|
||||
$(wildcard $(sysdirs:%=%/Versions)) \
|
||||
$(sysd-versions-force)
|
||||
{ echo 'sysd-versions-subdirs = $(all-subdirs) $(config-sysdirs)' ; \
|
||||
$(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
|
||||
LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
|
||||
-v move_if_change='$(move-if-change)' \
|
||||
-f $(filter-out $< $(sysd-versions-force),$^); \
|
||||
} > $@T
|
||||
|
||||
@@ -7,6 +7,10 @@ Please send GNU C library bug reports using the `glibcbug' script to
|
||||
<bugs@gnu.org>. Questions and suggestions should be send to
|
||||
<bug-glibc@gnu.org>.
|
||||
|
||||
Version 2.1.2
|
||||
|
||||
* bug fixes
|
||||
|
||||
Version 2.1.1
|
||||
|
||||
* New ISO C 9x function _Exit, imaxabs, and imaxdiv are added.
|
||||
|
||||
@@ -18,18 +18,57 @@ comments. You could also use the `-D' option to GCC, but it's better
|
||||
if you make the source files indicate their own meaning in a
|
||||
self-contained way.
|
||||
|
||||
This system exists to allow the library to conform to multiple
|
||||
standards. Although the different standards are often described as
|
||||
supersets of each other, they are usually incompatible because larger
|
||||
standards require functions with names that smaller ones reserve to the
|
||||
user program. This is not mere pedantry -- it has been a problem in
|
||||
practice. For instance, some non-GNU programs define functions named
|
||||
`getline' that have nothing to do with this library's `getline'. They
|
||||
would not be compilable if all features were enabled indescriminantly.
|
||||
|
||||
This should not be used to verify that a program conforms to a
|
||||
limited standard. It is insufficent for this purpose, as it will not
|
||||
protect you from including header files outside the standard, or
|
||||
relying on semantics undefined within the standard.
|
||||
|
||||
- Macro: _POSIX_SOURCE
|
||||
If you define this macro, then the functionality from the POSIX.1
|
||||
standard (IEEE Standard 1003.1) is available, as well as all of the
|
||||
ISO C facilities.
|
||||
|
||||
The state of `_POSIX_SOURCE' is irrelevant if you define the macro
|
||||
`_POSIX_C_SOURCE' to a positive integer.
|
||||
|
||||
- Macro: _POSIX_C_SOURCE
|
||||
If you define this macro with a value of `1', then the
|
||||
functionality from the POSIX.1 standard (IEEE Standard 1003.1) is
|
||||
made available. If you define this macro with a value of `2',
|
||||
then both the functionality from the POSIX.1 standard and the
|
||||
functionality from the POSIX.2 standard (IEEE Standard 1003.2) are
|
||||
made available. This is in addition to the ISO C facilities.
|
||||
Define this macro to a positive integer to control which POSIX
|
||||
functionality is made available. The greater the value of this
|
||||
macro, the more functionality is made available.
|
||||
|
||||
If you define this macro to a value greater than or equal to `1',
|
||||
then the functionality from the 1990 edition of the POSIX.1
|
||||
standard (IEEE Standard 1003.1-1990) is made available.
|
||||
|
||||
If you define this macro to a value greater than or equal to `2',
|
||||
then the functionality from the 1992 edition of the POSIX.2
|
||||
standard (IEEE Standard 1003.2-1992) is made available.
|
||||
|
||||
If you define this macro to a value greater than or equal to
|
||||
`199309L', then the functionality from the 1993 edition of the
|
||||
POSIX.1b standard (IEEE Standard 1003.1b-1993) is made available.
|
||||
|
||||
Greater values for `_POSIX_C_SOURCE' will enable future extensions.
|
||||
The POSIX standards process will define these values as necessary,
|
||||
and the GNU C Library should support them some time after they
|
||||
become standardized. The 1996 edition of POSIX.1 (ISO/IEC 9945-1:
|
||||
1996) states that if you define `_POSIX_C_SOURCE' to a value
|
||||
greater than or equal to `199506L', then the functionality from
|
||||
the 1996 edition is made available.
|
||||
|
||||
The Single Unix Specification specify that setting this macro to
|
||||
the value `199506L' selects all the values specified by the POSIX
|
||||
standards plus those of the Single Unix Specification, i.e., is the
|
||||
same as if `_XOPEN_SOURCE' is set to `500' (see below).
|
||||
|
||||
- Macro: _BSD_SOURCE
|
||||
If you define this macro, functionality derived from 4.3 BSD Unix
|
||||
@@ -72,12 +111,12 @@ self-contained way.
|
||||
|
||||
If the macro `_XOPEN_SOURCE' has the value 500 this includes all
|
||||
functionality described so far plus some new definitions from the
|
||||
Single Unix specification, version 2.
|
||||
Single Unix Specification, version 2.
|
||||
|
||||
- Macro: _LARGEFILE_SOURCE
|
||||
If this macro is defined some extra functions are available which
|
||||
rectify a few shortcomings in all previous standards. More
|
||||
concreten the functions `fseeko' and `ftello' are available.
|
||||
concrete the functions `fseeko' and `ftello' are available.
|
||||
Without these functions the difference between the ISO C interface
|
||||
(`fseek', `ftell') and the low-level POSIX interface (`lseek')
|
||||
would lead to problems.
|
||||
@@ -85,7 +124,7 @@ self-contained way.
|
||||
This macro was introduced as part of the Large File Support
|
||||
extension (LFS).
|
||||
|
||||
- Variable: Macro _LARGEFILE64_SOURCE
|
||||
- Macro: _LARGEFILE64_SOURCE
|
||||
If you define this macro an additional set of function gets
|
||||
available which enables to use on 32 bit systems to use files of
|
||||
sizes beyond the usual limit of 2GB. This interface is not
|
||||
@@ -103,7 +142,7 @@ self-contained way.
|
||||
extension (LFS). It is a transition interface for the time 64 bit
|
||||
offsets are not generally used (see `_FILE_OFFSET_BITS'.
|
||||
|
||||
- Variable: _FILE_OFFSET_BITS
|
||||
- Macro: _FILE_OFFSET_BITS
|
||||
This macro lets decide which file system interface shall be used,
|
||||
one replacing the other. While `_LARGEFILE64_SOURCE' makes the
|
||||
64 bit interface available as an additional interface
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This directory contains the version 2.1.1 release of the GNU C Library.
|
||||
This directory contains the version 2.1.2 release of the GNU C Library.
|
||||
Many bugs have been fixed since the last release.
|
||||
Some bugs surely remain.
|
||||
|
||||
@@ -53,14 +53,14 @@ provides the Unix `crypt' function, plus some other entry points.
|
||||
Because of the United States export restriction on DES
|
||||
implementations, we are distributing this code separately from the
|
||||
rest of the C library. There is an extra distribution tar file just
|
||||
for crypt; it is called `glibc-crypt-2.1.1.tar.gz'. You can just
|
||||
for crypt; it is called `glibc-crypt-2.1.2.tar.gz'. You can just
|
||||
unpack the crypt distribution along with the rest of the C library and
|
||||
build; you can also build the library without getting crypt. Users
|
||||
outside the USA can get the crypt distribution via anonymous FTP from
|
||||
ftp.funet.fi [128.214.248.6] in the directory pub/gnu/funet, or
|
||||
ftp.gwdg.de [134.76.11.100] in the directory pub/linux/glibc, or
|
||||
another archive site outside the USA. Archive maintainers are
|
||||
encouraged to copy this distribution to their archives outside the
|
||||
USA. Please get it from ftp.funet.fi; transferring this distribution
|
||||
USA. Please get it from ftp.gwdg.de; transferring this distribution
|
||||
from ftp.gnu.org (or any other site in the USA) to a site outside the
|
||||
USA is in violation of US export laws.
|
||||
|
||||
|
||||
+2
-2
@@ -57,10 +57,10 @@ for crypt; it is called `glibc-crypt-VERSION.tar.gz'. You can just
|
||||
unpack the crypt distribution along with the rest of the C library and
|
||||
build; you can also build the library without getting crypt. Users
|
||||
outside the USA can get the crypt distribution via anonymous FTP from
|
||||
ftp.funet.fi [128.214.248.6] in the directory pub/gnu/funet, or
|
||||
ftp.gwdg.de [134.76.11.100] in the directory pub/linux/glibc, or
|
||||
another archive site outside the USA. Archive maintainers are
|
||||
encouraged to copy this distribution to their archives outside the
|
||||
USA. Please get it from ftp.funet.fi; transferring this distribution
|
||||
USA. Please get it from ftp.gwdg.de; transferring this distribution
|
||||
from ftp.gnu.org (or any other site in the USA) to a site outside the
|
||||
USA is in violation of US export laws.
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ libc {
|
||||
GLIBC_2.0
|
||||
GLIBC_2.1 GLIBC_2.0
|
||||
GLIBC_2.1.1 GLIBC_2.1
|
||||
GLIBC_2.1.2 GLIBC_2.1.1
|
||||
}
|
||||
libcrypt {
|
||||
GLIBC_2.0
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
/* Macros to swap the order of bytes in integer values.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#if !defined _BYTESWAP_H && !defined _NETINET_IN_H
|
||||
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
|
||||
#endif
|
||||
|
||||
/* Swap bytes in 16 bit value. */
|
||||
#ifdef __GNUC__
|
||||
# define __bswap_16(x) \
|
||||
(__extension__ \
|
||||
({ unsigned short int __bsx = (x); \
|
||||
((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8)); }))
|
||||
#else
|
||||
static __inline unsigned short int
|
||||
__bswap_16 (unsigned short int __bsx)
|
||||
{
|
||||
return ((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8));
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Swap bytes in 32 bit value. */
|
||||
#ifdef __GNUC__
|
||||
# define __bswap_32(x) \
|
||||
(__extension__ \
|
||||
({ unsigned int __bsx = (x); \
|
||||
((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >> 8) | \
|
||||
(((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24)); }))
|
||||
#else
|
||||
static __inline unsigned int
|
||||
__bswap_32 (unsigned int __bsx)
|
||||
{
|
||||
return ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >> 8) |
|
||||
(((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined __GNUC__ && __GNUC__ >= 2
|
||||
/* Swap bytes in 64 bit value. */
|
||||
# define __bswap_64(x) \
|
||||
(__extension__ \
|
||||
({ union { unsigned long long int __ll; \
|
||||
unsigned long int __l[2]; } __v, __r; \
|
||||
__v.__ll = (x); \
|
||||
__r.__l[0] = __bswap_32 (__v.__l[1]); \
|
||||
__r.__l[1] = __bswap_32 (__v.__l[0]); \
|
||||
__r.__ll; }))
|
||||
#endif
|
||||
-408
@@ -1,408 +0,0 @@
|
||||
/* `sysconf', `pathconf', and `confstr' NAME values. Generic version.
|
||||
Copyright (C) 1993, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _UNISTD_H
|
||||
# error "Never use <bits/confname.h> directly; include <unistd.h> instead."
|
||||
#endif
|
||||
|
||||
/* Values for the NAME argument to `pathconf' and `fpathconf'. */
|
||||
enum
|
||||
{
|
||||
_PC_LINK_MAX,
|
||||
#define _PC_LINK_MAX _PC_LINK_MAX
|
||||
_PC_MAX_CANON,
|
||||
#define _PC_MAX_CANON _PC_MAX_CANON
|
||||
_PC_MAX_INPUT,
|
||||
#define _PC_MAX_INPUT _PC_MAX_INPUT
|
||||
_PC_NAME_MAX,
|
||||
#define _PC_NAME_MAX _PC_NAME_MAX
|
||||
_PC_PATH_MAX,
|
||||
#define _PC_PATH_MAX _PC_PATH_MAX
|
||||
_PC_PIPE_BUF,
|
||||
#define _PC_PIPE_BUF _PC_PIPE_BUF
|
||||
_PC_CHOWN_RESTRICTED,
|
||||
#define _PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED
|
||||
_PC_NO_TRUNC,
|
||||
#define _PC_NO_TRUNC _PC_NO_TRUNC
|
||||
_PC_VDISABLE,
|
||||
#define _PC_VDISABLE _PC_VDISABLE
|
||||
_PC_SYNC_IO,
|
||||
#define _PC_SYNC_IO _PC_SYNC_IO
|
||||
_PC_ASYNC_IO,
|
||||
#define _PC_ASYNC_IO _PC_ASYNC_IO
|
||||
_PC_PRIO_IO,
|
||||
#define _PC_PRIO_IO _PC_PRIO_IO
|
||||
_PC_SOCK_MAXBUF,
|
||||
#define _PC_SOCK_MAXBUF _PC_SOCK_MAXBUF
|
||||
_PC_FILESIZEBITS
|
||||
#define _PC_FILESIZEBITS _PC_FILESIZEBITS
|
||||
};
|
||||
|
||||
/* Values for the argument to `sysconf'. */
|
||||
enum
|
||||
{
|
||||
_SC_ARG_MAX,
|
||||
#define _SC_ARG_MAX _SC_ARG_MAX
|
||||
_SC_CHILD_MAX,
|
||||
#define _SC_CHILD_MAX _SC_CHILD_MAX
|
||||
_SC_CLK_TCK,
|
||||
#define _SC_CLK_TCK _SC_CLK_TCK
|
||||
_SC_NGROUPS_MAX,
|
||||
#define _SC_NGROUPS_MAX _SC_NGROUPS_MAX
|
||||
_SC_OPEN_MAX,
|
||||
#define _SC_OPEN_MAX _SC_OPEN_MAX
|
||||
_SC_STREAM_MAX,
|
||||
#define _SC_STREAM_MAX _SC_STREAM_MAX
|
||||
_SC_TZNAME_MAX,
|
||||
#define _SC_TZNAME_MAX _SC_TZNAME_MAX
|
||||
_SC_JOB_CONTROL,
|
||||
#define _SC_JOB_CONTROL _SC_JOB_CONTROL
|
||||
_SC_SAVED_IDS,
|
||||
#define _SC_SAVED_IDS _SC_SAVED_IDS
|
||||
_SC_REALTIME_SIGNALS,
|
||||
#define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS
|
||||
_SC_PRIORITY_SCHEDULING,
|
||||
#define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING
|
||||
_SC_TIMERS,
|
||||
#define _SC_TIMERS _SC_TIMERS
|
||||
_SC_ASYNCHRONOUS_IO,
|
||||
#define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO
|
||||
_SC_PRIORITIZED_IO,
|
||||
#define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO
|
||||
_SC_SYNCHRONIZED_IO,
|
||||
#define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO
|
||||
_SC_FSYNC,
|
||||
#define _SC_FSYNC _SC_FSYNC
|
||||
_SC_MAPPED_FILES,
|
||||
#define _SC_MAPPED_FILES _SC_MAPPED_FILES
|
||||
_SC_MEMLOCK,
|
||||
#define _SC_MEMLOCK _SC_MEMLOCK
|
||||
_SC_MEMLOCK_RANGE,
|
||||
#define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE
|
||||
_SC_MEMORY_PROTECTION,
|
||||
#define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION
|
||||
_SC_MESSAGE_PASSING,
|
||||
#define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING
|
||||
_SC_SEMAPHORES,
|
||||
#define _SC_SEMAPHORES _SC_SEMAPHORES
|
||||
_SC_SHARED_MEMORY_OBJECTS,
|
||||
#define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS
|
||||
_SC_AIO_LISTIO_MAX,
|
||||
#define _SC_AIO_LISTIO_MAX _SC_AIO_LISTIO_MAX
|
||||
_SC_AIO_MAX,
|
||||
#define _SC_AIO_MAX _SC_AIO_MAX
|
||||
_SC_AIO_PRIO_DELTA_MAX,
|
||||
#define _SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX
|
||||
_SC_DELAYTIMER_MAX,
|
||||
#define _SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX
|
||||
_SC_MQ_OPEN_MAX,
|
||||
#define _SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX
|
||||
_SC_MQ_PRIO_MAX,
|
||||
#define _SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX
|
||||
_SC_VERSION,
|
||||
#define _SC_VERSION _SC_VERSION
|
||||
_SC_PAGESIZE,
|
||||
#define _SC_PAGESIZE _SC_PAGESIZE
|
||||
#define _SC_PAGE_SIZE _SC_PAGESIZE
|
||||
_SC_RTSIG_MAX,
|
||||
#define _SC_RTSIG_MAX _SC_RTSIG_MAX
|
||||
_SC_SEM_NSEMS_MAX,
|
||||
#define _SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX
|
||||
_SC_SEM_VALUE_MAX,
|
||||
#define _SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX
|
||||
_SC_SIGQUEUE_MAX,
|
||||
#define _SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX
|
||||
_SC_TIMER_MAX,
|
||||
#define _SC_TIMER_MAX _SC_TIMER_MAX
|
||||
|
||||
/* Values for the argument to `sysconf'
|
||||
corresponding to _POSIX2_* symbols. */
|
||||
_SC_BC_BASE_MAX,
|
||||
#define _SC_BC_BASE_MAX _SC_BC_BASE_MAX
|
||||
_SC_BC_DIM_MAX,
|
||||
#define _SC_BC_DIM_MAX _SC_BC_DIM_MAX
|
||||
_SC_BC_SCALE_MAX,
|
||||
#define _SC_BC_SCALE_MAX _SC_BC_SCALE_MAX
|
||||
_SC_BC_STRING_MAX,
|
||||
#define _SC_BC_STRING_MAX _SC_BC_STRING_MAX
|
||||
_SC_COLL_WEIGHTS_MAX,
|
||||
#define _SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX
|
||||
_SC_EQUIV_CLASS_MAX,
|
||||
#define _SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX
|
||||
_SC_EXPR_NEST_MAX,
|
||||
#define _SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX
|
||||
_SC_LINE_MAX,
|
||||
#define _SC_LINE_MAX _SC_LINE_MAX
|
||||
_SC_RE_DUP_MAX,
|
||||
#define _SC_RE_DUP_MAX _SC_RE_DUP_MAX
|
||||
_SC_CHARCLASS_NAME_MAX,
|
||||
#define _SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX
|
||||
|
||||
_SC_2_VERSION,
|
||||
#define _SC_2_VERSION _SC_2_VERSION
|
||||
_SC_2_C_BIND,
|
||||
#define _SC_2_C_BIND _SC_2_C_BIND
|
||||
_SC_2_C_DEV,
|
||||
#define _SC_2_C_DEV _SC_2_C_DEV
|
||||
_SC_2_FORT_DEV,
|
||||
#define _SC_2_FORT_DEV _SC_2_FORT_DEV
|
||||
_SC_2_FORT_RUN,
|
||||
#define _SC_2_FORT_RUN _SC_2_FORT_RUN
|
||||
_SC_2_SW_DEV,
|
||||
#define _SC_2_SW_DEV _SC_2_SW_DEV
|
||||
_SC_2_LOCALEDEF,
|
||||
#define _SC_2_LOCALEDEF _SC_2_LOCALEDEF
|
||||
|
||||
_SC_PII,
|
||||
#define _SC_PII _SC_PII
|
||||
_SC_PII_XTI,
|
||||
#define _SC_PII_XTI _SC_PII_XTI
|
||||
_SC_PII_SOCKET,
|
||||
#define _SC_PII_SOCKET _SC_PII_SOCKET
|
||||
_SC_PII_INTERNET,
|
||||
#define _SC_PII_INTERNET _SC_PII_INTERNET
|
||||
_SC_PII_OSI,
|
||||
#define _SC_PII_OSI _SC_PII_OSI
|
||||
_SC_POLL,
|
||||
#define _SC_POLL _SC_POLL
|
||||
_SC_SELECT,
|
||||
#define _SC_SELECT _SC_SELECT
|
||||
_SC_UIO_MAXIOV,
|
||||
#define _SC_UIO_MAXIOV _SC_UIO_MAXIOV
|
||||
_SC_PII_INTERNET_STREAM,
|
||||
#define _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM
|
||||
_SC_PII_INTERNET_DGRAM,
|
||||
#define _SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM
|
||||
_SC_PII_OSI_COTS,
|
||||
#define _SC_PII_OSI_COTS _SC_PII_OSI_COTS
|
||||
_SC_PII_OSI_CLTS,
|
||||
#define _SC_PII_OSI_CLTS _SC_PII_OSI_CLTS
|
||||
_SC_PII_OSI_M,
|
||||
#define _SC_PII_OSI_M _SC_PII_OSI_M
|
||||
_SC_T_IOV_MAX,
|
||||
#define _SC_T_IOV_MAX _SC_T_IOV_MAX
|
||||
|
||||
/* Values according to POSIX 1003.1c (POSIX threads). */
|
||||
_SC_THREADS,
|
||||
#define _SC_THREADS _SC_THREADS
|
||||
_SC_THREAD_SAFE_FUNCTIONS,
|
||||
#define _SC_THREAD_SAFE_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS
|
||||
_SC_GETGR_R_SIZE_MAX,
|
||||
#define _SC_GETGR_R_SIZE_MAX _SC_GETGR_R_SIZE_MAX
|
||||
_SC_GETPW_R_SIZE_MAX,
|
||||
#define _SC_GETPW_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX
|
||||
_SC_LOGIN_NAME_MAX,
|
||||
#define _SC_LOGIN_NAME_MAX _SC_LOGIN_NAME_MAX
|
||||
_SC_TTY_NAME_MAX,
|
||||
#define _SC_TTY_NAME_MAX _SC_TTY_NAME_MAX
|
||||
_SC_THREAD_DESTRUCTOR_ITERATIONS,
|
||||
#define _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS
|
||||
_SC_THREAD_KEYS_MAX,
|
||||
#define _SC_THREAD_KEYS_MAX _SC_THREAD_KEYS_MAX
|
||||
_SC_THREAD_STACK_MIN,
|
||||
#define _SC_THREAD_STACK_MIN _SC_THREAD_STACK_MIN
|
||||
_SC_THREAD_THREADS_MAX,
|
||||
#define _SC_THREAD_THREADS_MAX _SC_THREAD_THREADS_MAX
|
||||
_SC_THREAD_ATTR_STACKADDR,
|
||||
#define _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKADDR
|
||||
_SC_THREAD_ATTR_STACKSIZE,
|
||||
#define _SC_THREAD_ATTR_STACKSIZE _SC_THREAD_ATTR_STACKSIZE
|
||||
_SC_THREAD_PRIORITY_SCHEDULING,
|
||||
#define _SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIORITY_SCHEDULING
|
||||
_SC_THREAD_PRIO_INHERIT,
|
||||
#define _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_INHERIT
|
||||
_SC_THREAD_PRIO_PROTECT,
|
||||
#define _SC_THREAD_PRIO_PROTECT _SC_THREAD_PRIO_PROTECT
|
||||
_SC_THREAD_PROCESS_SHARED,
|
||||
#define _SC_THREAD_PROCESS_SHARED _SC_THREAD_PROCESS_SHARED
|
||||
|
||||
_SC_NPROCESSORS_CONF,
|
||||
#define _SC_NPROCESSORS_CONF _SC_NPROCESSORS_CONF
|
||||
_SC_NPROCESSORS_ONLN,
|
||||
#define _SC_NPROCESSORS_ONLN _SC_NPROCESSORS_ONLN
|
||||
_SC_PHYS_PAGES,
|
||||
#define _SC_PHYS_PAGES _SC_PHYS_PAGES
|
||||
_SC_AVPHYS_PAGES,
|
||||
#define _SC_AVPHYS_PAGES _SC_AVPHYS_PAGES
|
||||
_SC_ATEXIT_MAX,
|
||||
#define _SC_ATEXIT_MAX _SC_ATEXIT_MAX
|
||||
_SC_PASS_MAX,
|
||||
#define _SC_PASS_MAX _SC_PASS_MAX
|
||||
|
||||
_SC_XOPEN_VERSION,
|
||||
#define _SC_XOPEN_VERSION _SC_XOPEN_VERSION
|
||||
_SC_XOPEN_XCU_VERSION,
|
||||
#define _SC_XOPEN_XCU_VERSION _SC_XOPEN_XCU_VERSION
|
||||
_SC_XOPEN_UNIX,
|
||||
#define _SC_XOPEN_UNIX _SC_XOPEN_UNIX
|
||||
_SC_XOPEN_CRYPT,
|
||||
#define _SC_XOPEN_CRYPT _SC_XOPEN_CRYPT
|
||||
_SC_XOPEN_ENH_I18N,
|
||||
#define _SC_XOPEN_ENH_I18N _SC_XOPEN_ENH_I18N
|
||||
_SC_XOPEN_SHM,
|
||||
#define _SC_XOPEN_SHM _SC_XOPEN_SHM
|
||||
|
||||
_SC_2_CHAR_TERM,
|
||||
#define _SC_2_CHAR_TERM _SC_2_CHAR_TERM
|
||||
_SC_2_C_VERSION,
|
||||
#define _SC_2_C_VERSION _SC_2_C_VERSION
|
||||
_SC_2_UPE,
|
||||
#define _SC_2_UPE _SC_2_UPE
|
||||
|
||||
_SC_XOPEN_XPG2,
|
||||
#define _SC_XOPEN_XPG2 _SC_XOPEN_XPG2
|
||||
_SC_XOPEN_XPG3,
|
||||
#define _SC_XOPEN_XPG3 _SC_XOPEN_XPG3
|
||||
_SC_XOPEN_XPG4,
|
||||
#define _SC_XOPEN_XPG4 _SC_XOPEN_XPG4
|
||||
|
||||
_SC_CHAR_BIT,
|
||||
#define _SC_CHAR_BIT _SC_CHAR_BIT
|
||||
_SC_CHAR_MAX,
|
||||
#define _SC_CHAR_MAX _SC_CHAR_MAX
|
||||
_SC_CHAR_MIN,
|
||||
#define _SC_CHAR_MIN _SC_CHAR_MIN
|
||||
_SC_INT_MAX,
|
||||
#define _SC_INT_MAX _SC_INT_MAX
|
||||
_SC_INT_MIN,
|
||||
#define _SC_INT_MIN _SC_INT_MIN
|
||||
_SC_LONG_BIT,
|
||||
#define _SC_LONG_BIT _SC_LONG_BIT
|
||||
_SC_WORD_BIT,
|
||||
#define _SC_WORD_BIT _SC_WORD_BIT
|
||||
_SC_MB_LEN_MAX,
|
||||
#define _SC_MB_LEN_MAX _SC_MB_LEN_MAX
|
||||
_SC_NZERO,
|
||||
#define _SC_NZERO _SC_NZERO
|
||||
_SC_SSIZE_MAX,
|
||||
#define _SC_SSIZE_MAX _SC_SSIZE_MAX
|
||||
_SC_SCHAR_MAX,
|
||||
#define _SC_SCHAR_MAX _SC_SCHAR_MAX
|
||||
_SC_SCHAR_MIN,
|
||||
#define _SC_SCHAR_MIN _SC_SCHAR_MIN
|
||||
_SC_SHRT_MAX,
|
||||
#define _SC_SHRT_MAX _SC_SHRT_MAX
|
||||
_SC_SHRT_MIN,
|
||||
#define _SC_SHRT_MIN _SC_SHRT_MIN
|
||||
_SC_UCHAR_MAX,
|
||||
#define _SC_UCHAR_MAX _SC_UCHAR_MAX
|
||||
_SC_UINT_MAX,
|
||||
#define _SC_UINT_MAX _SC_UINT_MAX
|
||||
_SC_ULONG_MAX,
|
||||
#define _SC_ULONG_MAX _SC_ULONG_MAX
|
||||
_SC_USHRT_MAX,
|
||||
#define _SC_USHRT_MAX _SC_USHRT_MAX
|
||||
|
||||
_SC_NL_ARGMAX,
|
||||
#define _SC_NL_ARGMAX _SC_NL_ARGMAX
|
||||
_SC_NL_LANGMAX,
|
||||
#define _SC_NL_LANGMAX _SC_NL_LANGMAX
|
||||
_SC_NL_MSGMAX,
|
||||
#define _SC_NL_MSGMAX _SC_NL_MSGMAX
|
||||
_SC_NL_NMAX,
|
||||
#define _SC_NL_NMAX _SC_NL_NMAX
|
||||
_SC_NL_SETMAX,
|
||||
#define _SC_NL_SETMAX _SC_NL_SETMAX
|
||||
_SC_NL_TEXTMAX,
|
||||
#define _SC_NL_TEXTMAX _SC_NL_TEXTMAX
|
||||
|
||||
_SC_XBS5_ILP32_OFF32,
|
||||
#define _SC_XBS5_ILP32_OFF32 _SC_XBS5_ILP32_OFF32
|
||||
_SC_XBS5_ILP32_OFFBIG,
|
||||
#define _SC_XBS5_ILP32_OFFBIG _SC_XBS5_ILP32_OFFBIG
|
||||
_SC_XBS5_LP64_OFF64,
|
||||
#define _SC_XBS5_LP64_OFF64 _SC_XBS5_LP64_OFF64
|
||||
_SC_XBS5_LPBIG_OFFBIG,
|
||||
#define _SC_XBS5_LPBIG_OFFBIG _SC_XBS5_LPBIG_OFFBIG
|
||||
|
||||
_SC_XOPEN_LEGACY,
|
||||
#define _SC_XOPEN_LEGACY _SC_XOPEN_LEGACY
|
||||
_SC_XOPEN_REALTIME,
|
||||
#define _SC_XOPEN_REALTIME _SC_XOPEN_REALTIME
|
||||
_SC_XOPEN_REALTIME_THREADS
|
||||
#define _SC_XOPEN_REALTIME_THREADS _SC_XOPEN_REALTIME_THREADS
|
||||
};
|
||||
|
||||
#if (defined __USE_POSIX2 || defined __USE_UNIX98 \
|
||||
|| defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
|
||||
|| defined __USE_LARGEFILE)
|
||||
/* Values for the NAME argument to `confstr'. */
|
||||
enum
|
||||
{
|
||||
_CS_PATH /* The default search path. */
|
||||
#define _CS_PATH _CS_PATH
|
||||
|
||||
#if (defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
|
||||
|| defined __USE_LARGEFILE)
|
||||
,
|
||||
_CS_LFS_CFLAGS = 1000,
|
||||
# define _CS_LFS_CFLAGS _CS_LFS_CFLAGS
|
||||
_CS_LFS_LDFLAGS,
|
||||
# define _CS_LFS_LDFLAGS _CS_LFS_LDFLAGS
|
||||
_CS_LFS_LIBS,
|
||||
# define _CS_LFS_LIBS _CS_LFS_LIBS
|
||||
_CS_LFS_LINTFLAGS,
|
||||
# define _CS_LFS_LINTFLAGS _CS_LFS_LINTFLAGS
|
||||
_CS_LFS64_CFLAGS,
|
||||
# define _CS_LFS64_CFLAGS _CS_LFS64_CFLAGS
|
||||
_CS_LFS64_LDFLAGS,
|
||||
# define _CS_LFS64_LDFLAGS _CS_LFS64_LDFLAGS
|
||||
_CS_LFS64_LIBS,
|
||||
# define _CS_LFS64_LIBS _CS_LFS64_LIBS
|
||||
_CS_LFS64_LINTFLAGS
|
||||
# define _CS_LFS64_LINTFLAGS _CS_LFS64_LINTFLAGS
|
||||
#endif
|
||||
|
||||
#ifdef __USE_UNIX98
|
||||
,
|
||||
_CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
|
||||
# define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
|
||||
_CS_XBS5_ILP32_OFF32_LDFLAGS,
|
||||
# define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
|
||||
_CS_XBS5_ILP32_OFF32_LIBS,
|
||||
# define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
|
||||
_CS_XBS5_ILP32_OFF32_LINTFLAGS,
|
||||
# define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
|
||||
_CS_XBS5_ILP32_OFFBIG_CFLAGS,
|
||||
# define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
|
||||
_CS_XBS5_ILP32_OFFBIG_LDFLAGS,
|
||||
# define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
|
||||
_CS_XBS5_ILP32_OFFBIG_LIBS,
|
||||
# define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
|
||||
_CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
|
||||
# define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
|
||||
_CS_XBS5_LP64_OFF64_CFLAGS,
|
||||
# define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
|
||||
_CS_XBS5_LP64_OFF64_LDFLAGS,
|
||||
# define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
|
||||
_CS_XBS5_LP64_OFF64_LIBS,
|
||||
# define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
|
||||
_CS_XBS5_LP64_OFF64_LINTFLAGS,
|
||||
# define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
|
||||
_CS_XBS5_LPBIG_OFFBIG_CFLAGS,
|
||||
# define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
|
||||
_CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
|
||||
# define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
|
||||
_CS_XBS5_LPBIG_OFFBIG_LIBS,
|
||||
# define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
|
||||
_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
|
||||
# define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
@@ -1,37 +0,0 @@
|
||||
/* Directory entry structure `struct dirent'. Stub version.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _DIRENT_H
|
||||
# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
|
||||
#endif
|
||||
|
||||
struct dirent
|
||||
{
|
||||
char d_name[1]; /* Variable length. */
|
||||
int d_fileno;
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct dirent64
|
||||
{
|
||||
char d_name[1]; /* Variable length. */
|
||||
int d_fileno;
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
/* System dependent definitions for run-time dynamic loading.
|
||||
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _DLFCN_H
|
||||
# error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
|
||||
#endif
|
||||
|
||||
/* The MODE argument to `dlopen' contains one of the following: */
|
||||
#define RTLD_LAZY 0x001 /* Lazy function call binding. */
|
||||
#define RTLD_NOW 0x002 /* Immediate function call binding. */
|
||||
#define RTLD_BINDING_MASK 0x3 /* Mask of binding time value. */
|
||||
|
||||
/* If the following bit is set in the MODE argument to `dlopen',
|
||||
the symbols of the loaded object and its dependencies are made
|
||||
visible as if the object were linked directly into the program. */
|
||||
#define RTLD_GLOBAL 0x100
|
||||
|
||||
/* Unix98 demands the following flag which is the inverse to RTLD_GLOBAL.
|
||||
The implementation does this by default and so we can define the
|
||||
value to zero. */
|
||||
#define RTLD_LOCAL 0
|
||||
@@ -1,11 +0,0 @@
|
||||
/* This file specifies the native word size of the machine, which indicates
|
||||
the ELF file class used for executables and shared objects on this
|
||||
machine. */
|
||||
|
||||
#ifndef _LINK_H
|
||||
# error "Never use <bits/elfclass.h> directly; include <link.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#define __ELF_NATIVE_CLASS __WORDSIZE
|
||||
@@ -1,13 +0,0 @@
|
||||
/* This file should define __BYTE_ORDER as appropriate for the machine
|
||||
in question. See string/endian.h for how to define it.
|
||||
|
||||
If only the stub bits/endian.h applies to a particular configuration,
|
||||
bytesex.h is generated by running a program on the host machine.
|
||||
So if cross-compiling to a machine with a different byte order,
|
||||
the bits/endian.h file for that machine must exist. */
|
||||
|
||||
#ifndef _ENDIAN_H
|
||||
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
|
||||
#endif
|
||||
|
||||
#error Machine byte order unknown.
|
||||
@@ -1,59 +0,0 @@
|
||||
/* Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _UNISTD_H
|
||||
# error "Never include this file directly. Use <unistd.h> instead"
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
/* This header should define the following symbols under the described
|
||||
situations. A value `1' means that the model is always supported,
|
||||
`-1' means it is never supported. Undefined means it cannot be
|
||||
statically decided.
|
||||
|
||||
_XBS5_ILP32_OFF32 32bit int, long, pointers, and off_t type
|
||||
_XBS5_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
|
||||
|
||||
_XBS5_LP64_OFF32 64bit long and pointers and 32bit off_t type
|
||||
_XBS5_LPBIG_OFFBIG 64bit long and pointers and large off_t type
|
||||
*/
|
||||
|
||||
#if __WORDSIZE == 64
|
||||
|
||||
/* We can never provide environments with 32-bit wide pointers. */
|
||||
# define _XBS5_ILP32_OFF32 -1
|
||||
# define _XBS5_ILP32_OFFBIG -1
|
||||
|
||||
/* By default we have 64-bit wide `long int', pointers and `off_t'. */
|
||||
# define _XBS5_LP64_OFF32 1
|
||||
# define _XBS5_LPBIG_OFFBIG 1
|
||||
|
||||
#else /* __WORDSIZE == 32 */
|
||||
|
||||
/* By default we have 32-bit wide `int', `long int', pointers and `off_t'. */
|
||||
# define _XBS5_ILP32_OFF32 1
|
||||
|
||||
/* We optionally provide an environment with the above size but an 64-bit
|
||||
side `off_t'. Therefore we don't define _XBS5_ILP32_OFFBIG. */
|
||||
|
||||
/* We can never provide environments with 64-bit wide pointers. */
|
||||
# define _XBS5_LP64_OFF64 -1
|
||||
# define _XBS5_LPBIG_OFFBIG -1
|
||||
|
||||
#endif /* __WORDSIZE == 32 */
|
||||
@@ -1,37 +0,0 @@
|
||||
/* Copyright (C) 1991, 1994, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; 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 defines the `errno' constants. */
|
||||
|
||||
#if !defined __Emath_defined && (defined _ERRNO_H || defined __need_Emath)
|
||||
#undef __need_Emath
|
||||
#define __Emath_defined 1
|
||||
|
||||
# define EDOM XXX <--- fill in what is actually needed
|
||||
# define EILSEQ XXX <--- fill in what is actually needed
|
||||
# define ERANGE XXX <--- fill in what is actually needed
|
||||
#endif
|
||||
|
||||
#ifdef _ERRNO_H
|
||||
# error "Define here all the missing error messages for the port. These"
|
||||
# error "must match the numbers of the kernel."
|
||||
# define Exxxx XXX
|
||||
...
|
||||
#endif
|
||||
|
||||
#define __set_errno(val) errno = (val)
|
||||
@@ -1,85 +0,0 @@
|
||||
/* O_*, F_*, FD_* bit values for stub configuration.
|
||||
Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* These values should be changed as appropriate for your system. */
|
||||
|
||||
#ifndef _FCNTL_H
|
||||
#error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* File access modes for `open' and `fcntl'. */
|
||||
#define O_RDONLY 0 /* Open read-only. */
|
||||
#define O_WRONLY 1 /* Open write-only. */
|
||||
#define O_RDWR 2 /* Open read/write. */
|
||||
|
||||
|
||||
/* Bits OR'd into the second argument to open. */
|
||||
#define O_CREAT 0x0200 /* Create file if it doesn't exist. */
|
||||
#define O_EXCL 0x0800 /* Fail if file already exists. */
|
||||
#define O_TRUNC 0x0400 /* Truncate file to zero length. */
|
||||
#define O_NOCTTY 0x0100 /* Don't assign a controlling terminal. */
|
||||
|
||||
/* File status flags for `open' and `fcntl'. */
|
||||
#define O_APPEND 0x0008 /* Writes append to the file. */
|
||||
#define O_NONBLOCK 0x0004 /* Non-blocking I/O. */
|
||||
|
||||
#ifdef __USE_BSD
|
||||
#define O_NDELAY O_NONBLOCK
|
||||
#endif
|
||||
|
||||
/* Mask for file access modes. This is system-dependent in case
|
||||
some system ever wants to define some other flavor of access. */
|
||||
#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR)
|
||||
|
||||
/* Values for the second argument to `fcntl'. */
|
||||
#define F_DUPFD 0 /* Duplicate file descriptor. */
|
||||
#define F_GETFD 1 /* Get file descriptor flags. */
|
||||
#define F_SETFD 2 /* Set file descriptor flags. */
|
||||
#define F_GETFL 3 /* Get file status flags. */
|
||||
#define F_SETFL 4 /* Set file status flags. */
|
||||
#ifdef __USE_BSD
|
||||
#define F_GETOWN 5 /* Get owner (receiver of SIGIO). */
|
||||
#define F_SETOWN 6 /* Set owner (receiver of SIGIO). */
|
||||
#endif
|
||||
#define F_GETLK 7 /* Get record locking info. */
|
||||
#define F_SETLK 8 /* Set record locking info. */
|
||||
#define F_SETLKW 9 /* Set record locking info, wait. */
|
||||
|
||||
/* File descriptor flags used with F_GETFD and F_SETFD. */
|
||||
#define FD_CLOEXEC 1 /* Close on exec. */
|
||||
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* The structure describing an advisory lock. This is the type of the third
|
||||
argument to `fcntl' for the F_GETLK, F_SETLK, and F_SETLKW requests. */
|
||||
struct flock
|
||||
{
|
||||
short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
|
||||
short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
|
||||
__off_t l_start; /* Offset where the lock begins. */
|
||||
__off_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||
__pid_t l_pid; /* Process holding the lock. */
|
||||
};
|
||||
|
||||
/* Values for the `l_type' field of a `struct flock'. */
|
||||
#define F_RDLCK 1 /* Read lock. */
|
||||
#define F_WRLCK 2 /* Write lock. */
|
||||
#define F_UNLCK 3 /* Remove lock. */
|
||||
-61
@@ -1,61 +0,0 @@
|
||||
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _FENV_H
|
||||
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Here should be the exception be defined:
|
||||
FE_INVALID
|
||||
FE_DIVBYZERO
|
||||
FE_OVERFLOW
|
||||
FE_UNDERFLOW
|
||||
FE_INEXACT
|
||||
We define no macro which signals no exception is supported. */
|
||||
|
||||
#define FE_ALL_EXCEPT 0
|
||||
|
||||
|
||||
/* Here should the rounding modes be defined:
|
||||
FE_TONEAREST
|
||||
FE_DOWNWARD
|
||||
FE_UPWARD
|
||||
FE_TOWARDZERO
|
||||
We define no macro which signals no rounding mode is selectable. */
|
||||
|
||||
|
||||
/* Type representing exception flags.
|
||||
XXX Probably we should also include the signal handler here. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned int __flags;
|
||||
}
|
||||
fexcept_t;
|
||||
|
||||
|
||||
/* Type representing floating-point environment. */
|
||||
typedef struct
|
||||
{
|
||||
fexcept_t __excepts;
|
||||
/* XXX I don't know what else we should save. */
|
||||
}
|
||||
fenv_t;
|
||||
|
||||
/* If the default argument is used we use this value. */
|
||||
#define FE_DFL_ENV ((fenv_t *) -1l)
|
||||
@@ -1,26 +0,0 @@
|
||||
/* Stub `HUGE_VAL' constant.
|
||||
Used by <stdlib.h> and <math.h> functions for overflow.
|
||||
Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _MATH_H
|
||||
# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
#define HUGE_VAL 1e37
|
||||
@@ -1,83 +0,0 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Generic version. */
|
||||
|
||||
#ifndef _NETINET_IN_H
|
||||
# error "Never use <bits/in.h> directly; include <netinet/in.h> instead."
|
||||
#endif
|
||||
|
||||
/* Link numbers. */
|
||||
#define IMPLINK_IP 155
|
||||
#define IMPLINK_LOWEXPER 156
|
||||
#define IMPLINK_HIGHEXPER 158
|
||||
|
||||
|
||||
/* Options for use with `getsockopt' and `setsockopt' at the IP level.
|
||||
The first word in the comment at the right is the data type used;
|
||||
"bool" means a boolean value stored in an `int'. */
|
||||
#define IP_OPTIONS 1 /* ip_opts; IP per-packet options. */
|
||||
#define IP_HDRINCL 2 /* int; Header is included with data. */
|
||||
#define IP_TOS 3 /* int; IP type of service and precedence. */
|
||||
#define IP_TTL 4 /* int; IP time to live. */
|
||||
#define IP_RECVOPTS 5 /* bool; Receive all IP options w/datagram. */
|
||||
#define IP_RECVRETOPTS 6 /* bool; Receive IP options for response. */
|
||||
#define IP_RECVDSTADDR 7 /* bool; Receive IP dst addr w/datagram. */
|
||||
#define IP_RETOPTS 8 /* ip_opts; Set/get IP per-packet options. */
|
||||
#define IP_MULTICAST_IF 9 /* in_addr; set/get IP multicast i/f */
|
||||
#define IP_MULTICAST_TTL 10 /* u_char; set/get IP multicast ttl */
|
||||
#define IP_MULTICAST_LOOP 11 /* i_char; set/get IP multicast loopback */
|
||||
#define IP_ADD_MEMBERSHIP 12 /* ip_mreq; add an IP group membership */
|
||||
#define IP_DROP_MEMBERSHIP 13 /* ip_mreq; drop an IP group membership */
|
||||
|
||||
/* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
|
||||
The `ip_dst' field is used for the first-hop gateway when using a
|
||||
source route (this gets put into the header proper). */
|
||||
struct ip_opts
|
||||
{
|
||||
struct in_addr ip_dst; /* First hop; zero without source route. */
|
||||
char ip_opts[40]; /* Actually variable in size. */
|
||||
};
|
||||
|
||||
/* Structure used for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */
|
||||
struct ip_mreq
|
||||
{
|
||||
struct in_addr imr_multiaddr; /* IP multicast address of group */
|
||||
struct in_addr imr_interface; /* local IP address of interface */
|
||||
};
|
||||
|
||||
/* IPV6 socket options. */
|
||||
#define IPV6_ADDRFORM 1
|
||||
#define IPV6_RXINFO 2
|
||||
#define IPV6_RXHOPOPTS 3
|
||||
#define IPV6_RXDSTOPTS 4
|
||||
#define IPV6_RXSRCRT 5
|
||||
#define IPV6_PKTOPTIONS 6
|
||||
#define IPV6_CHECKSUM 7
|
||||
#define IPV6_HOPLIMIT 8
|
||||
|
||||
#define IPV6_TXINFO IPV6_RXINFO
|
||||
#define SCM_SRCINFO IPV6_TXINFO
|
||||
#define SCM_SRCRT IPV6_RXSRCRT
|
||||
|
||||
#define IPV6_UNICAST_HOPS 16
|
||||
#define IPV6_MULTICAST_IF 17
|
||||
#define IPV6_MULTICAST_HOPS 18
|
||||
#define IPV6_MULTICAST_LOOP 19
|
||||
#define IPV6_ADD_MEMBERSHIP 20
|
||||
#define IPV6_DROP_MEMBERSHIP 21
|
||||
@@ -1,114 +0,0 @@
|
||||
/* Structure types for pre-termios terminal ioctls. Generic Unix version.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_IOCTL_H
|
||||
# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
|
||||
#endif
|
||||
|
||||
#if defined TIOCGETC || defined TIOCSETC
|
||||
/* Type of ARG for TIOCGETC and TIOCSETC requests. */
|
||||
struct tchars
|
||||
{
|
||||
char t_intrc; /* Interrupt character. */
|
||||
char t_quitc; /* Quit character. */
|
||||
char t_startc; /* Start-output character. */
|
||||
char t_stopc; /* Stop-output character. */
|
||||
char t_eofc; /* End-of-file character. */
|
||||
char t_brkc; /* Input delimiter character. */
|
||||
};
|
||||
|
||||
#define _IOT_tchars /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (char), 6, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
#if defined TIOCGLTC || defined TIOCSLTC
|
||||
/* Type of ARG for TIOCGLTC and TIOCSLTC requests. */
|
||||
struct ltchars
|
||||
{
|
||||
char t_suspc; /* Suspend character. */
|
||||
char t_dsuspc; /* Delayed suspend character. */
|
||||
char t_rprntc; /* Reprint-line character. */
|
||||
char t_flushc; /* Flush-output character. */
|
||||
char t_werasc; /* Word-erase character. */
|
||||
char t_lnextc; /* Literal-next character. */
|
||||
};
|
||||
|
||||
#define _IOT_ltchars /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (char), 6, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
/* Type of ARG for TIOCGETP and TIOCSETP requests (and gtty and stty). */
|
||||
struct sgttyb
|
||||
{
|
||||
char sg_ispeed; /* Input speed. */
|
||||
char sg_ospeed; /* Output speed. */
|
||||
char sg_erase; /* Erase character. */
|
||||
char sg_kill; /* Kill character. */
|
||||
short int sg_flags; /* Mode flags. */
|
||||
};
|
||||
|
||||
#define _IOT_sgttyb /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (char), 6, _IOTS (short int), 1, 0, 0)
|
||||
|
||||
#if defined TIOCGWINSZ || defined TIOCSWINSZ
|
||||
/* Type of ARG for TIOCGWINSZ and TIOCSWINSZ requests. */
|
||||
struct winsize
|
||||
{
|
||||
unsigned short int ws_row; /* Rows, in characters. */
|
||||
unsigned short int ws_col; /* Columns, in characters. */
|
||||
|
||||
/* These are not actually used. */
|
||||
unsigned short int ws_xpixel; /* Horizontal pixels. */
|
||||
unsigned short int ws_ypixel; /* Vertical pixels. */
|
||||
};
|
||||
|
||||
#define _IOT_winsize /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (unsigned short int), 4, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
#if defined TIOCGSIZE || defined TIOCSSIZE
|
||||
/* The BSD-style ioctl constructor macros use `sizeof', which can't be used
|
||||
in a preprocessor conditional. Since the commands are always unique
|
||||
regardless of the size bits, we can safely define away `sizeof' for the
|
||||
purpose of the conditional. */
|
||||
# define sizeof(type) 0
|
||||
# if defined TIOCGWINSZ && TIOCGSIZE == TIOCGWINSZ
|
||||
/* Many systems that have TIOCGWINSZ define TIOCGSIZE for source
|
||||
compatibility with Sun; they define `struct ttysize' to have identical
|
||||
layout as `struct winsize' and #define TIOCGSIZE to be TIOCGWINSZ
|
||||
(likewise TIOCSSIZE and TIOCSWINSZ). */
|
||||
struct ttysize
|
||||
{
|
||||
unsigned short int ts_lines;
|
||||
unsigned short int ts_cols;
|
||||
unsigned short int ts_xxx;
|
||||
unsigned short int ts_yyy;
|
||||
};
|
||||
#define _IOT_ttysize _IOT_winsize
|
||||
# else
|
||||
/* Suns use a different layout for `struct ttysize', and TIOCGSIZE and
|
||||
TIOCGWINSZ are separate commands that do the same thing with different
|
||||
structures (likewise TIOCSSIZE and TIOCSWINSZ). */
|
||||
struct ttysize
|
||||
{
|
||||
int ts_lines, ts_cols; /* Lines and columns, in characters. */
|
||||
};
|
||||
# endif
|
||||
# undef sizeof /* See above. */
|
||||
#endif
|
||||
@@ -1,5 +0,0 @@
|
||||
#ifndef _SYS_IOCTL_H
|
||||
# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
|
||||
#endif
|
||||
|
||||
/* This space intentionally left blank. */
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_IPC_H
|
||||
# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Mode bits for `msgget', `semget', and `shmget'. */
|
||||
#define IPC_CREAT 01000 /* create key if key does not exist */
|
||||
#define IPC_EXCL 02000 /* fail if key exists */
|
||||
#define IPC_NOWAIT 04000 /* return error on wait */
|
||||
|
||||
/* Control commands for `msgctl', `semctl', and `shmctl'. */
|
||||
#define IPC_RMID 0 /* remove identifier */
|
||||
#define IPC_SET 1 /* set `ipc_perm' options */
|
||||
#define IPC_STAT 2 /* get `ipc_perm' options */
|
||||
|
||||
/* Special key values. */
|
||||
#define IPC_PRIVATE ((key_t) 0) /* private key */
|
||||
|
||||
|
||||
/* Data structure used to pass permission information to IPC operations. */
|
||||
struct ipc_perm
|
||||
{
|
||||
__uid_t uid; /* owner's user ID */
|
||||
__gid_t gid; /* owner's group ID */
|
||||
__uid_t cuid; /* creator's user ID */
|
||||
__gid_t cgid; /* creator's group ID */
|
||||
__mode_t mode; /* read/write permission */
|
||||
};
|
||||
@@ -1,109 +0,0 @@
|
||||
/* libc-internal interface for mutex locks. Stub version.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _BITS_LIBC_LOCK_H
|
||||
#define _BITS_LIBC_LOCK_H 1
|
||||
|
||||
|
||||
/* Define a lock variable NAME with storage class CLASS. The lock must be
|
||||
initialized with __libc_lock_init before it can be used (or define it
|
||||
with __libc_lock_define_initialized, below). Use `extern' for CLASS to
|
||||
declare a lock defined in another module. In public structure
|
||||
definitions you must use a pointer to the lock structure (i.e., NAME
|
||||
begins with a `*'), because its storage size will not be known outside
|
||||
of libc. */
|
||||
#define __libc_lock_define(CLASS,NAME)
|
||||
|
||||
/* Define an initialized lock variable NAME with storage class CLASS. */
|
||||
#define __libc_lock_define_initialized(CLASS,NAME)
|
||||
|
||||
/* Define an initialized recursive lock variable NAME with storage
|
||||
class CLASS. */
|
||||
#define __libc_lock_define_initialized_recursive(CLASS,NAME)
|
||||
|
||||
/* Initialize the named lock variable, leaving it in a consistent, unlocked
|
||||
state. */
|
||||
#define __libc_lock_init(NAME)
|
||||
|
||||
/* Same as last but this time we initialize a recursive mutex. */
|
||||
#define __libc_lock_init_recursive(NAME)
|
||||
|
||||
/* Finalize the named lock variable, which must be locked. It cannot be
|
||||
used again until __libc_lock_init is called again on it. This must be
|
||||
called on a lock variable before the containing storage is reused. */
|
||||
#define __libc_lock_fini(NAME)
|
||||
|
||||
/* Finalize recursive named lock. */
|
||||
#define __libc_lock_fini_recursive(NAME)
|
||||
|
||||
/* Lock the named lock variable. */
|
||||
#define __libc_lock_lock(NAME)
|
||||
|
||||
/* Lock the recursive named lock variable. */
|
||||
#define __libc_lock_lock_recursive(NAME)
|
||||
|
||||
/* Try to lock the named lock variable. */
|
||||
#define __libc_lock_trylock(NAME) 0
|
||||
|
||||
/* Try to lock the recursive named lock variable. */
|
||||
#define __libc_lock_trylock_recursive(NAME) 0
|
||||
|
||||
/* Unlock the named lock variable. */
|
||||
#define __libc_lock_unlock(NAME)
|
||||
|
||||
/* Unlock the recursive named lock variable. */
|
||||
#define __libc_lock_unlock_recursive(NAME)
|
||||
|
||||
|
||||
/* Define once control variable. */
|
||||
#define __libc_once_define(CLASS, NAME) CLASS int NAME = 0
|
||||
|
||||
/* Call handler iff the first call. */
|
||||
#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
|
||||
do { \
|
||||
if ((ONCE_CONTROL) == 0) { \
|
||||
INIT_FUNCTION (); \
|
||||
(ONCE_CONTROL) = 1; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* Start critical region with cleanup. */
|
||||
#define __libc_cleanup_region_start(FCT, ARG)
|
||||
|
||||
/* End critical region with cleanup. */
|
||||
#define __libc_cleanup_region_end(DOIT)
|
||||
|
||||
|
||||
/* We need portable names for some of the functions. */
|
||||
#define __libc_mutex_unlock
|
||||
|
||||
/* Type for key of thread specific data. */
|
||||
typedef int __libc_key_t;
|
||||
|
||||
/* Create key for thread specific data. */
|
||||
#define __libc_key_create(KEY,DEST) -1
|
||||
|
||||
/* Set thread-specific data associated with KEY to VAL. */
|
||||
#define __libc_setspecific(KEY,VAL) -1
|
||||
|
||||
/* Get thread-specific data associated with KEY. */
|
||||
#define __libc_getspecific(KEY) 0
|
||||
|
||||
#endif /* bits/libc-lock.h */
|
||||
@@ -1,51 +0,0 @@
|
||||
/* libc-internal interface for thread-specific data. Stub version.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _BITS_LIBC_TSD_H
|
||||
#define _BITS_LIBC_TSD_H 1
|
||||
|
||||
/* This file defines the following macros for accessing a small fixed
|
||||
set of thread-specific `void *' data used only internally by libc.
|
||||
|
||||
__libc_tsd_define(CLASS, KEY) -- Define or declare a `void *' datum
|
||||
for KEY. CLASS can be `static' for
|
||||
keys used in only one source file,
|
||||
empty for global definitions, or
|
||||
`extern' for global declarations.
|
||||
__libc_tsd_get(KEY) -- Return the `void *' datum for KEY.
|
||||
__libc_tsd_set(KEY, VALUE) -- Set the datum for KEY to VALUE.
|
||||
|
||||
The set of available KEY's will usually be provided as an enum,
|
||||
and contains (at least):
|
||||
_LIBC_TSD_KEY_MALLOC
|
||||
_LIBC_TSD_KEY_DL_ERROR
|
||||
All uses must be the literal _LIBC_TSD_* name in the __libc_tsd_* macros.
|
||||
Some implementations may not provide any enum at all and instead
|
||||
using string pasting in the macros. */
|
||||
|
||||
/* This is the generic/stub implementation for wholly single-threaded
|
||||
systems. We don't define an enum for the possible key values, because
|
||||
the KEYs translate directly into variables by macro magic. */
|
||||
|
||||
#define __libc_tsd_define(CLASS, KEY) CLASS void *__libc_tsd_##KEY##_data;
|
||||
#define __libc_tsd_get(KEY) (__libc_tsd_##KEY##_data)
|
||||
#define __libc_tsd_set(KEY, VALUE) (__libc_tsd_##KEY##_data = (VALUE))
|
||||
|
||||
|
||||
#endif /* bits/libc-tsd.h */
|
||||
@@ -1,3 +0,0 @@
|
||||
/* This file should define the implementation-specific limits described
|
||||
in posix[12]_lim.h. If there are no useful values to give a limit,
|
||||
don't define it. */
|
||||
@@ -1,51 +0,0 @@
|
||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#if !defined _MATH_H && !defined _COMPLEX_H
|
||||
# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
|
||||
#endif
|
||||
|
||||
#if defined __USE_ISOC9X && defined _MATH_H
|
||||
/* Normally, there is no long double type and the `float' and `double'
|
||||
expressions are evaluated as `double'. */
|
||||
typedef double float_t; /* `float' expressions are evaluated as
|
||||
`double'. */
|
||||
typedef double double_t; /* `double' expressions are evaluated as
|
||||
`double'. */
|
||||
|
||||
/* Signal that both types are `double'. */
|
||||
# define FLT_EVAL_METHOD 1
|
||||
|
||||
/* Define `INFINITY' as value of type `float'. */
|
||||
# define INFINITY HUGE_VALF
|
||||
|
||||
|
||||
/* The values returned by `ilogb' for 0 and NaN respectively. */
|
||||
# define FP_ILOGB0 0x80000001
|
||||
# define FP_ILOGBNAN 0x7fffffff
|
||||
|
||||
/* Number of decimal digits for the `double' type. */
|
||||
# define DECIMAL_DIG 15
|
||||
|
||||
#endif /* ISO C 9X */
|
||||
|
||||
#ifndef __NO_LONG_DOUBLE_MATH
|
||||
/* Signal that we do not really have a `long double'. The disables the
|
||||
declaration of all the `long double' function variants. */
|
||||
# define __NO_LONG_DOUBLE_MATH 1
|
||||
#endif
|
||||
@@ -1,12 +0,0 @@
|
||||
/* This file should provide inline versions of math functions.
|
||||
|
||||
Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
|
||||
|
||||
This file should define __MATH_INLINES if functions are actually defined as
|
||||
inlines. */
|
||||
|
||||
#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
|
||||
|
||||
/* Here goes the real code. */
|
||||
|
||||
#endif
|
||||
-73
@@ -1,73 +0,0 @@
|
||||
/* Definitions for BSD-style memory management.
|
||||
Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* These are the bits used by 4.4 BSD and its derivatives. On systems
|
||||
(such as GNU) where these facilities are not system services but can be
|
||||
emulated in the C library, these are the definitions we emulate. */
|
||||
|
||||
#ifndef _BITS_MMAN_H
|
||||
#define _BITS_MMAN_H 1
|
||||
|
||||
/* Protections are chosen from these bits, OR'd together. The
|
||||
implementation does not necessarily support PROT_EXEC or PROT_WRITE
|
||||
without PROT_READ. The only guarantees are that no writing will be
|
||||
allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
|
||||
|
||||
#define PROT_NONE 0x00 /* No access. */
|
||||
#define PROT_READ 0x04 /* Pages can be read. */
|
||||
#define PROT_WRITE 0x02 /* Pages can be written. */
|
||||
#define PROT_EXEC 0x01 /* Pages can be executed. */
|
||||
|
||||
/* Flags contain mapping type, sharing type and options. */
|
||||
|
||||
/* Mapping type (must choose one and only one of these). */
|
||||
#ifdef __USE_BSD
|
||||
# define MAP_FILE 0x0001 /* Mapped from a file or device. */
|
||||
# define MAP_ANON 0x0002 /* Allocated from anonymous virtual memory. */
|
||||
# define MAP_TYPE 0x000f /* Mask for type field. */
|
||||
# ifdef __USE_MISC
|
||||
# define MAP_ANONYMOUS MAP_ANON /* Linux name. */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Sharing types (must choose one and only one of these). */
|
||||
#ifdef __USE_BSD
|
||||
# define MAP_COPY 0x0020 /* Virtual copy of region at mapping time. */
|
||||
#endif
|
||||
#define MAP_SHARED 0x0010 /* Share changes. */
|
||||
#define MAP_PRIVATE 0x0000 /* Changes private; copy pages on write. */
|
||||
|
||||
/* Other flags. */
|
||||
#define MAP_FIXED 0x0100 /* Map address must be exactly as requested. */
|
||||
#ifdef __USE_BSD
|
||||
# define MAP_NOEXTEND 0x0200 /* For MAP_FILE, don't change file size. */
|
||||
# define MAP_HASSEMPHORE 0x0400 /* Region may contain semaphores. */
|
||||
# define MAP_INHERIT 0x0800 /* Region is retained after exec. */
|
||||
#endif
|
||||
|
||||
/* Advice to `madvise'. */
|
||||
#ifdef __USE_BSD
|
||||
# define MADV_NORMAL 0 /* No further special treatment. */
|
||||
# define MADV_RANDOM 1 /* Expect random page references. */
|
||||
# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */
|
||||
# define MADV_WILLNEED 3 /* Will need these pages. */
|
||||
# define MADV_DONTNEED 4 /* Don't need these pages. */
|
||||
#endif
|
||||
|
||||
#endif /* bits/mman.h */
|
||||
-41
@@ -1,41 +0,0 @@
|
||||
/* Copyright (C) 1995, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_MSG_H
|
||||
#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Define options for message queue functions. */
|
||||
#define MSG_NOERROR 010000 /* no error if message is too big */
|
||||
|
||||
|
||||
/* Structure of record for one message inside the kernel.
|
||||
The type `struct __msg' is opaque. */
|
||||
struct msqid_ds
|
||||
{
|
||||
struct ipc_perm msg_perm; /* structure describing operation permission */
|
||||
__time_t msg_stime; /* time of last msgsnd command */
|
||||
__time_t msg_rtime; /* time of last msgrcv command */
|
||||
__time_t msg_ctime; /* time of last change */
|
||||
unsigned short int msg_qnum; /* number of messages currently on queue */
|
||||
unsigned short int msg_qbytes;/* max number of bytes allowed on queue */
|
||||
__pid_t msg_lspid; /* pid of last msgsnd() */
|
||||
__pid_t msg_lrpid; /* pid of last msgrcv() */
|
||||
};
|
||||
@@ -1,5 +0,0 @@
|
||||
#ifndef _MATH_H
|
||||
#error "Never use <bits/nan.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
/* This file should define `NAN' on machines that have such things. */
|
||||
-41
@@ -1,41 +0,0 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_POLL_H
|
||||
# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
|
||||
#endif
|
||||
|
||||
/* Event types that can be polled for. These bits may be set in `events'
|
||||
to indicate the interesting event types; they will appear in `revents'
|
||||
to indicate the status of the file descriptor. */
|
||||
#define POLLIN 01 /* There is data to read. */
|
||||
#define POLLPRI 02 /* There is urgent data to read. */
|
||||
#define POLLOUT 04 /* Writing now will not block. */
|
||||
|
||||
/* Some aliases. */
|
||||
#define POLLWRNORM POLLOUT
|
||||
|
||||
/* Event types always implicitly polled for. These bits need not be set in
|
||||
`events', but they will appear in `revents' to indicate the status of
|
||||
the file descriptor. */
|
||||
#define POLLERR 010 /* Error condition. */
|
||||
#define POLLHUP 020 /* Hung up. */
|
||||
#define POLLNVAL 040 /* Invalid polling request. */
|
||||
|
||||
/* Canonical number of polling requests to read in at a time in poll. */
|
||||
#define NPOLLFILE 30
|
||||
@@ -1,2 +0,0 @@
|
||||
/* This file should define the POSIX options described in <unistd.h>,
|
||||
or leave them undefined, as appropriate. */
|
||||
-182
@@ -1,182 +0,0 @@
|
||||
/* Bit values & structures for resource limits. 4.4 BSD/generic GNU version.
|
||||
Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_RESOURCE_H
|
||||
# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* These are the values for 4.4 BSD and GNU. Earlier BSD systems have a
|
||||
subset of these kinds of resource limit. In systems where `getrlimit'
|
||||
and `setrlimit' are not system calls, these are the values used by the C
|
||||
library to emulate them. */
|
||||
|
||||
/* Kinds of resource limit. */
|
||||
enum __rlimit_resource
|
||||
{
|
||||
/* Per-process CPU limit, in seconds. */
|
||||
RLIMIT_CPU,
|
||||
#define RLIMIT_CPU RLIMIT_CPU
|
||||
/* Largest file that can be created, in bytes. */
|
||||
RLIMIT_FSIZE,
|
||||
#define RLIMIT_FSIZE RLIMIT_FSIZE
|
||||
/* Maximum size of data segment, in bytes. */
|
||||
RLIMIT_DATA,
|
||||
#define RLIMIT_DATA RLIMIT_DATA
|
||||
/* Maximum size of stack segment, in bytes. */
|
||||
RLIMIT_STACK,
|
||||
#define RLIMIT_STACK RLIMIT_STACK
|
||||
/* Largest core file that can be created, in bytes. */
|
||||
RLIMIT_CORE,
|
||||
#define RLIMIT_CORE RLIMIT_CORE
|
||||
/* Largest resident set size, in bytes.
|
||||
This affects swapping; processes that are exceeding their
|
||||
resident set size will be more likely to have physical memory
|
||||
taken from them. */
|
||||
RLIMIT_RSS,
|
||||
#define RLIMIT_RSS RLIMIT_RSS
|
||||
/* Locked-in-memory address space. */
|
||||
RLIMIT_MEMLOCK,
|
||||
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
|
||||
/* Number of processes. */
|
||||
RLIMIT_NPROC,
|
||||
#define RLIMIT_NPROC RLIMIT_NPROC
|
||||
/* Number of open files. */
|
||||
RLIMIT_OFILE,
|
||||
RLIMIT_NOFILE = RLIMIT_OFILE, /* Another name for the same thing. */
|
||||
#define RLIMIT_OFILE RLIMIT_OFILE
|
||||
#define RLIMIT_NOFILE RLIMIT_NOFILE
|
||||
|
||||
RLIMIT_NLIMITS, /* Number of limit flavors. */
|
||||
RLIM_NLIMITS = RLIMIT_NLIMITS /* Traditional name for same. */
|
||||
};
|
||||
|
||||
/* Value to indicate that there is no limit. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
# define RLIM_INFINITY 0x7fffffff
|
||||
#else
|
||||
# define RLIM_INFINITY 0x7fffffffffffffffLL
|
||||
#endif
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
# define RLIM64_INFINITY 0x7fffffffffffffffLL
|
||||
#endif
|
||||
|
||||
|
||||
/* Type for resource quantity measurement. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
typedef __rlim_t rlim_t;
|
||||
#else
|
||||
typedef __rlim64_t rlim_t;
|
||||
#endif
|
||||
#ifdef __USE_LARGEFILE64
|
||||
typedef __rlim64_t rlim64_t;
|
||||
#endif
|
||||
|
||||
struct rlimit
|
||||
{
|
||||
/* The current (soft) limit. */
|
||||
rlim_t rlim_cur;
|
||||
/* The hard limit. */
|
||||
rlim_t rlim_max;
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct rlimit64
|
||||
{
|
||||
/* The current (soft) limit. */
|
||||
rlim64_t rlim_cur;
|
||||
/* The hard limit. */
|
||||
rlim64_t rlim_max;
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Whose usage statistics do you want? */
|
||||
enum __rusage_who
|
||||
/* The macro definitions are necessary because some programs want
|
||||
to test for operating system features with #ifdef RUSAGE_SELF.
|
||||
In ISO C the reflexive definition is a no-op. */
|
||||
{
|
||||
/* The calling process. */
|
||||
RUSAGE_SELF = 0,
|
||||
#define RUSAGE_SELF RUSAGE_SELF
|
||||
/* All of its terminated child processes. */
|
||||
RUSAGE_CHILDREN = -1
|
||||
#define RUSAGE_CHILDREN RUSAGE_CHILDREN
|
||||
};
|
||||
|
||||
#define __need_timeval
|
||||
#include <bits/time.h> /* For `struct timeval'. */
|
||||
|
||||
/* Structure which says how much of each resource has been used. */
|
||||
struct rusage
|
||||
{
|
||||
/* Total amount of user time used. */
|
||||
struct timeval ru_utime;
|
||||
/* Total amount of system time used. */
|
||||
struct timeval ru_stime;
|
||||
/* Maximum resident set size (in kilobytes). */
|
||||
long int ru_maxrss;
|
||||
/* Amount of sharing of text segment memory
|
||||
with other processes (kilobyte-seconds). */
|
||||
long int ru_ixrss;
|
||||
/* Amount of data segment memory used (kilobyte-seconds). */
|
||||
long int ru_idrss;
|
||||
/* Amount of stack memory used (kilobyte-seconds). */
|
||||
long int ru_isrss;
|
||||
/* Number of soft page faults (i.e. those serviced by reclaiming
|
||||
a page from the list of pages awaiting reallocation. */
|
||||
long int ru_minflt;
|
||||
/* Number of hard page faults (i.e. those that required I/O). */
|
||||
long int ru_majflt;
|
||||
/* Number of times a process was swapped out of physical memory. */
|
||||
long int ru_nswap;
|
||||
/* Number of input operations via the file system. Note: This
|
||||
and `ru_oublock' do not include operations with the cache. */
|
||||
long int ru_inblock;
|
||||
/* Number of output operations via the file system. */
|
||||
long int ru_oublock;
|
||||
/* Number of IPC messages sent. */
|
||||
long int ru_msgsnd;
|
||||
/* Number of IPC messages received. */
|
||||
long int ru_msgrcv;
|
||||
/* Number of signals delivered. */
|
||||
long int ru_nsignals;
|
||||
/* Number of voluntary context switches, i.e. because the process
|
||||
gave up the process before it had to (usually to wait for some
|
||||
resource to be available). */
|
||||
long int ru_nvcsw;
|
||||
/* Number of involuntary context switches, i.e. a higher priority process
|
||||
became runnable or the current process used up its time slice. */
|
||||
long int ru_nivcsw;
|
||||
};
|
||||
|
||||
/* Priority limits. */
|
||||
#define PRIO_MIN -20 /* Minimum priority a process can have. */
|
||||
#define PRIO_MAX 20 /* Maximum priority a process can have. */
|
||||
|
||||
/* The type of the WHICH argument to `getpriority' and `setpriority',
|
||||
indicating what flavor of entity the WHO argument specifies. */
|
||||
enum __priority_which
|
||||
{
|
||||
PRIO_PROCESS = 0, /* WHO is a process ID. */
|
||||
PRIO_PGRP = 1, /* WHO is a process group ID. */
|
||||
PRIO_USER = 2 /* WHO is a user ID. */
|
||||
};
|
||||
@@ -1,35 +0,0 @@
|
||||
/* Definitions of constants and data structure for POSIX 1003.1b-1993
|
||||
scheduling interface.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
||||
not, write to the Free Software Foundation, Inc., 59 Temple Place
|
||||
Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SCHED_H
|
||||
# error "Never include <bits/sched.h> directly; use <sched.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Scheduling algorithms. */
|
||||
#define SCHED_OTHER 0
|
||||
#define SCHED_FIFO 1
|
||||
#define SCHED_RR 2
|
||||
|
||||
/* Data structure to describe a process' schedulability. */
|
||||
struct sched_param
|
||||
{
|
||||
int sched_priority;
|
||||
};
|
||||
@@ -1,35 +0,0 @@
|
||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_SELECT_H
|
||||
# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* We don't use `memset' because this would require a prototype and
|
||||
the array isn't too big. */
|
||||
#define __FD_ZERO(s) \
|
||||
do { \
|
||||
unsigned int __i; \
|
||||
__fd_set *__arr = (s); \
|
||||
for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i) \
|
||||
__FDS_BITS (__arr)[__i] = 0; \
|
||||
} while (0)
|
||||
#define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
|
||||
#define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d))
|
||||
#define __FD_ISSET(d, s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0)
|
||||
-62
@@ -1,62 +0,0 @@
|
||||
/* Copyright (C) 1995, 1996, 1997, 1998
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_SEM_H
|
||||
# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Flags for `semop'. */
|
||||
#define SEM_UNDO 0x1000 /* undo the operation on exit */
|
||||
|
||||
/* Commands for `semctl'. */
|
||||
#define GETPID 11 /* get sempid */
|
||||
#define GETVAL 12 /* get semval */
|
||||
#define GETALL 13 /* get all semval's */
|
||||
#define GETNCNT 14 /* get semncnt */
|
||||
#define GETZCNT 15 /* get semzcnt */
|
||||
#define SETVAL 16 /* set semval */
|
||||
#define SETALL 17 /* set all semval's */
|
||||
|
||||
|
||||
/* Data structure describing a set of semaphores. */
|
||||
struct semid_ds
|
||||
{
|
||||
struct ipc_perm sem_perm; /* operation permission struct */
|
||||
__time_t sem_otime; /* last semop() time */
|
||||
__time_t sem_ctime; /* last time changed by semctl() */
|
||||
unsigned short int sem_nsems; /* number of semaphores in set */
|
||||
};
|
||||
|
||||
/* The user should define a union like the following to use it for arguments
|
||||
for `semctl'.
|
||||
|
||||
union semun
|
||||
{
|
||||
int val; <= value for SETVAL
|
||||
struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
|
||||
unsigned short int *array; <= array for GETALL & SETALL
|
||||
struct seminfo *__buf; <= buffer for IPC_INFO
|
||||
};
|
||||
|
||||
Previous versions of this file used to define this union but this is
|
||||
incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
|
||||
one must define the union or not. */
|
||||
#define _SEM_SEMUN_UNDEFINED 1
|
||||
@@ -1,7 +0,0 @@
|
||||
/* Define the machine-dependent type `jmp_buf'. Stub version. */
|
||||
|
||||
#ifndef _SETJMP_H
|
||||
# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
|
||||
#endif
|
||||
|
||||
typedef int __jmp_buf[1];
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_SHM_H
|
||||
# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Flags for `shmat'. */
|
||||
#define SHM_RDONLY 010000 /* attach read-only else read-write */
|
||||
#define SHM_RND 020000 /* round attach address to SHMLBA */
|
||||
#define SHM_REMAP 040000 /* take-over region on attach */
|
||||
|
||||
/* Commands for `shmctl'. */
|
||||
#define SHM_LOCK 11 /* lock segment (root only) */
|
||||
#define SHM_UNLOCK 12 /* unlock segment (root only) */
|
||||
|
||||
|
||||
/* Data structure describing a set of semaphores. */
|
||||
struct shmid_ds
|
||||
{
|
||||
struct ipc_perm sem_perm; /* operation permission struct */
|
||||
int shm_segsz; /* size of segment in bytes */
|
||||
__time_t sem_atime; /* time of last shmat() */
|
||||
__time_t sem_dtime; /* time of last shmdt() */
|
||||
__time_t sem_ctime; /* time of last change by shmctl() */
|
||||
__pid_t shm_cpid; /* pid of creator */
|
||||
__pid_t shm_lpid; /* pid of last shmop */
|
||||
unsigned short int shm_nattch; /* number of current attaches */
|
||||
};
|
||||
@@ -1,53 +0,0 @@
|
||||
/* Copyright (C) 1991, 1992, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SIGNAL_H
|
||||
# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
|
||||
#endif
|
||||
|
||||
/* These definitions match those used by the 4.4 BSD kernel.
|
||||
If the operating system has a `sigaction' system call that correctly
|
||||
implements the POSIX.1 behavior, there should be a system-dependent
|
||||
version of this file that defines `struct sigaction' and the `SA_*'
|
||||
constants appropriately. */
|
||||
|
||||
/* Structure describing the action to be taken when a signal arrives. */
|
||||
struct sigaction
|
||||
{
|
||||
/* Signal handler. */
|
||||
__sighandler_t sa_handler;
|
||||
|
||||
/* Additional set of signals to be blocked. */
|
||||
__sigset_t sa_mask;
|
||||
|
||||
/* Special flags. */
|
||||
int sa_flags;
|
||||
};
|
||||
|
||||
/* Bits in `sa_flags'. */
|
||||
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||
# define SA_ONSTACK 0x0001 /* Take signal on signal stack. */
|
||||
# define SA_RESTART 0x0002 /* Restart syscall on signal return. */
|
||||
#endif
|
||||
#define SA_NOCLDSTOP 0x0008 /* Don't send SIGCHLD when children stop. */
|
||||
|
||||
|
||||
/* Values for the HOW argument to `sigprocmask'. */
|
||||
#define SIG_BLOCK 1 /* Block signals. */
|
||||
#define SIG_UNBLOCK 2 /* Unblock signals. */
|
||||
#define SIG_SETMASK 3 /* Set the set of blocked signals. */
|
||||
@@ -1,33 +0,0 @@
|
||||
/* Structure describing state saved while handling a signal. Stub version.
|
||||
Copyright (C) 1991, 1994, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SIGNAL_H
|
||||
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
|
||||
#endif
|
||||
|
||||
/* State of this thread when the signal was taken. */
|
||||
struct sigcontext
|
||||
{
|
||||
int sc_onstack;
|
||||
__sigset_t sc_mask;
|
||||
|
||||
/* Registers and such. */
|
||||
};
|
||||
|
||||
/* Signal subcodes should be defined here. */
|
||||
-203
@@ -1,203 +0,0 @@
|
||||
/* siginfo_t, sigevent and constants. Stub version.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#if !defined _SIGNAL_H && !defined __need_siginfo_t
|
||||
# error "Never include this file directly. Use <signal.h> instead"
|
||||
#endif
|
||||
|
||||
#if (!defined __have_siginfo_t \
|
||||
&& (defined _SIGNAL_H || defined __need_siginfo_t))
|
||||
# define __have_siginfo_t 1
|
||||
|
||||
/* Type for data associated with a signal. */
|
||||
typedef union sigval
|
||||
{
|
||||
int sival_int;
|
||||
void *sival_ptr;
|
||||
} sigval_t;
|
||||
|
||||
typedef struct siginfo
|
||||
{
|
||||
int si_signo; /* Signal number. */
|
||||
int si_errno; /* If non-zero, an errno value associated with
|
||||
this signal, as defined in <errno.h>. */
|
||||
int si_code; /* Signal code. */
|
||||
__pid_t si_pid; /* Sending process ID. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
void *si_addr; /* Address of faulting instruction. */
|
||||
int si_status; /* Exit value or signal. */
|
||||
long int si_band; /* Band event for SIGPOLL. */
|
||||
union sigval si_value; /* Signal value. */
|
||||
} siginfo_t;
|
||||
|
||||
|
||||
/* Values for `si_code'. Positive values are reserved for kernel-generated
|
||||
signals. */
|
||||
enum
|
||||
{
|
||||
SI_ASYNCIO = -4, /* Sent by AIO completion. */
|
||||
# define SI_ASYNCIO SI_ASYNCIO
|
||||
SI_MESGQ, /* Sent by real time mesq state change. */
|
||||
# define SI_MESGQ SI_MESGQ
|
||||
SI_TIMER, /* Sent by timer expiration. */
|
||||
# define SI_TIMER SI_TIMER
|
||||
SI_QUEUE, /* Sent by sigqueue. */
|
||||
# define SI_QUEUE SI_QUEUE
|
||||
SI_USER /* Sent by kill, sigsend, raise. */
|
||||
# define SI_USER SI_USER
|
||||
};
|
||||
|
||||
|
||||
/* `si_code' values for SIGILL signal. */
|
||||
enum
|
||||
{
|
||||
ILL_ILLOPC = 1, /* Illegal opcode. */
|
||||
# define ILL_ILLOPC ILL_ILLOPC
|
||||
ILL_ILL_OPN, /* Illegal operand. */
|
||||
# define ILL_ILLOPN ILL_ILLOPN
|
||||
ILL_ILLADR, /* Illegal addressing mode. */
|
||||
# define ILL_ILLADR ILL_ILLADR
|
||||
ILL_ILLTRP, /* Illegal trap. */
|
||||
# define ILL_ILLTRP ILL_ILLTRP
|
||||
ILL_PRVOPC, /* Privileged opcode. */
|
||||
# define ILL_PRVOPC ILL_PRVOPC
|
||||
ILL_PRVREG, /* Privileged register. */
|
||||
# define ILL_PRVREG ILL_PRVREG
|
||||
ILL_COPROC, /* Coprocessor error. */
|
||||
# define ILL_COPROC ILL_COPROC
|
||||
ILL_BADSTK /* Internal stack error. */
|
||||
# define ILL_BADSTK ILL_BADSTK
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGFPE signal. */
|
||||
enum
|
||||
{
|
||||
FPE_INTDIV = 1, /* Integer divide by zero. */
|
||||
# define FPE_INTDIV FPE_INTDIV
|
||||
FPE_INTOVF, /* Integer overflow. */
|
||||
# define FPE_INTOVF FPE_INTOVF
|
||||
FPE_FLTDIV, /* Floating point divide by zero. */
|
||||
# define FPE_FLTDIV FPE_FLTDIV
|
||||
FPE_FLTOVF, /* Floating point overflow. */
|
||||
# define FPE_FLTOVF FPE_FLTOVF
|
||||
FPE_FLTUND, /* Floating point underflow. */
|
||||
# define FPE_FLTUND FPE_FLTUND
|
||||
FPE_FLTRES, /* Floating point inexact result. */
|
||||
# define FPE_FLTRES FPE_FLTRES
|
||||
FPE_FLTINV, /* Floating point invalid operation. */
|
||||
# define FPE_FLTINV FPE_FLTINV
|
||||
FPE_FLTSUB /* Subscript out of range. */
|
||||
# define FPE_FLTSUB FPE_FLTSUB
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGSEGV signal. */
|
||||
enum
|
||||
{
|
||||
SEGV_MAPERR = 1, /* Address not mapped to object. */
|
||||
# define SEGV_MAPERR SEGV_MAPERR
|
||||
SEGV_ACCERR /* Invalid permissions for mapped object. */
|
||||
# define SEGV_ACCERR SEGV_ACCERR
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGBUS signal. */
|
||||
enum
|
||||
{
|
||||
BUS_ADRALN = 1, /* Invalid address alignment. */
|
||||
# define BUS_ADRALN BUS_ADRALN
|
||||
BUS_ADRERR, /* Non-existant physical address. */
|
||||
# define BUS_ADRERR BUS_ADRERR
|
||||
BUS_OBJERR /* Object specific hardware error. */
|
||||
# define BUS_OBJERR BUS_OBJERR
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGTRAP signal. */
|
||||
enum
|
||||
{
|
||||
TRAP_BRKPT = 1, /* Process breakpoint. */
|
||||
# define TRAP_BRKPT TRAP_BRKPT
|
||||
TRAP_TRACE /* Process trace trap. */
|
||||
# define TRAP_TRACE TRAP_TRACE
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGCHLD signal. */
|
||||
enum
|
||||
{
|
||||
CLD_EXITED = 1, /* Child has exited. */
|
||||
# define CLD_EXITED CLD_EXITED
|
||||
CLD_KILLED, /* Child was killed. */
|
||||
# define CLD_KILLED CLD_KILLED
|
||||
CLD_DUMPED, /* Child terminated abnormally. */
|
||||
# define CLD_DUMPED CLD_DUMPED
|
||||
CLD_TRAPPED, /* Traced child has trapped. */
|
||||
# define CLD_TRAPPED CLD_TRAPPED
|
||||
CLD_STOPPED, /* Child has stopped. */
|
||||
# define CLD_STOPPED CLD_STOPPED
|
||||
CLD_CONTINUED /* Stopped child has continued. */
|
||||
# define CLD_CONTINUED CLD_CONTINUED
|
||||
};
|
||||
|
||||
/* `si_code' values for SIGPOLL signal. */
|
||||
enum
|
||||
{
|
||||
POLL_IN = 1, /* Data input available. */
|
||||
# define POLL_IN POLL_IN
|
||||
POLL_OUT, /* Output buffers available. */
|
||||
# define POLL_OUT POLL_OUT
|
||||
POLL_MSG, /* Input message available. */
|
||||
# define POLL_MSG POLL_MSG
|
||||
POLL_ERR, /* I/O error. */
|
||||
# define POLL_ERR POLL_ERR
|
||||
POLL_PRI, /* High priority input available. */
|
||||
# define POLL_PRI POLL_PRI
|
||||
POLL_HUP /* Device disconnected. */
|
||||
# define POLL_HUP POLL_HUP
|
||||
};
|
||||
|
||||
# undef __need_siginfo_t
|
||||
#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */
|
||||
|
||||
|
||||
#if defined _SIGNAL_H && !defined __have_sigevent_t
|
||||
# define __have_sigevent_t 1
|
||||
|
||||
/* Structure to transport application-defined values with signals. */
|
||||
# define SIGEV_MAX_SIZE 64
|
||||
# define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE / sizeof (int)) - 3)
|
||||
|
||||
typedef struct sigevent
|
||||
{
|
||||
sigval_t sigev_value;
|
||||
int sigev_signo;
|
||||
int sigev_notify;
|
||||
void (*sigev_notify_function) __PMT ((sigval_t)); /* Function to start. */
|
||||
void *sigev_notify_attributes; /* Really pthread_attr_t.*/
|
||||
} sigevent_t;
|
||||
|
||||
/* `sigev_notify' values. */
|
||||
enum
|
||||
{
|
||||
SIGEV_SIGNAL = 0, /* Notify via signal. */
|
||||
# define SIGEV_SIGNAL SIGEV_SIGNAL
|
||||
SIGEV_NONE, /* Other notification: meaningless. */
|
||||
# define SIGEV_NONE SIGEV_NONE
|
||||
SIGEV_THREAD /* Deliver via thread creation. */
|
||||
# define SIGEV_THREAD SIGEV_THREAD
|
||||
};
|
||||
|
||||
#endif /* have _SIGNAL_H. */
|
||||
@@ -1,64 +0,0 @@
|
||||
/* Copyright (C) 1991, 1993, 1996, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifdef _SIGNAL_H
|
||||
|
||||
/* Fake signal functions. */
|
||||
|
||||
#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
|
||||
#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
|
||||
#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
|
||||
|
||||
#ifdef __USE_UNIX98
|
||||
# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
|
||||
#endif
|
||||
|
||||
/* Signals in the 1-15 range are defined with their historical numbers.
|
||||
Signals in the 20-25 range are relatively new and have no ingrained
|
||||
numbers. */
|
||||
|
||||
/* ANSI signals. */
|
||||
#define SIGINT 2 /* Interactive attention signal. */
|
||||
#define SIGILL 4 /* Illegal instruction. */
|
||||
#define SIGABRT 6 /* Abnormal termination. */
|
||||
#define SIGFPE 8 /* Erroneous arithmetic operation. */
|
||||
#define SIGSEGV 11 /* Invalid access to storage. */
|
||||
#define SIGTERM 15 /* Termination request. */
|
||||
|
||||
/* Historical signals specified by POSIX. */
|
||||
#define SIGHUP 1 /* Hangup. */
|
||||
#define SIGQUIT 3 /* Quit. */
|
||||
#define SIGKILL 9 /* Kill (cannot be blocked, caught, or ignored). */
|
||||
#define SIGPIPE 13 /* Broken pipe. */
|
||||
#define SIGALRM 14 /* Alarm clock. */
|
||||
|
||||
/* New(er) POSIX signals. */
|
||||
#define SIGSTOP 20 /* Stop (cannot be blocked, caught, or ignored). */
|
||||
#define SIGCONT 21 /* Continue. */
|
||||
#define SIGTSTP 22 /* Keyboard stop. */
|
||||
#define SIGTTIN 23 /* Background read from control terminal. */
|
||||
#define SIGTTOU 24 /* Background write to control terminal. */
|
||||
#define SIGCHLD 25 /* Child terminated or stopped. */
|
||||
|
||||
#define _NSIG 26
|
||||
|
||||
/* Archaic names for compatibility. */
|
||||
#define SIGIOT SIGABRT /* IOT instruction, abort() on a PDP11 */
|
||||
#define SIGCLD SIGCHLD /* Old System V name */
|
||||
|
||||
#endif /* <signal.h> included. */
|
||||
@@ -1,83 +0,0 @@
|
||||
/* __sig_atomic_t, __sigset_t, and related definitions. Generic/BSD version.
|
||||
Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SIGSET_H_types
|
||||
#define _SIGSET_H_types 1
|
||||
|
||||
typedef int __sig_atomic_t;
|
||||
|
||||
/* A `sigset_t' has a bit for each signal. */
|
||||
typedef unsigned long int __sigset_t;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* We only want to define these functions if <signal.h> was actually
|
||||
included; otherwise we were included just to define the types. Since we
|
||||
are namespace-clean, it wouldn't hurt to define extra macros. But
|
||||
trouble can be caused by functions being defined (e.g., any global
|
||||
register vars declared later will cause compilation errors). */
|
||||
|
||||
#if !defined _SIGSET_H_fns && defined _SIGNAL_H
|
||||
#define _SIGSET_H_fns 1
|
||||
|
||||
#ifndef _EXTERN_INLINE
|
||||
# define _EXTERN_INLINE extern __inline
|
||||
#endif
|
||||
|
||||
/* Return a mask that includes SIG only. The cast to `sigset_t' avoids
|
||||
overflow if `sigset_t' is wider than `int'. */
|
||||
#define __sigmask(sig) (((__sigset_t) 1) << ((sig) - 1))
|
||||
|
||||
#define __sigemptyset(set) ((*(set) = (__sigset_t) 0), 0)
|
||||
#define __sigfillset(set) ((*(set) = ~(__sigset_t) 0), 0)
|
||||
|
||||
#ifdef _GNU_SOURCE
|
||||
# define __sigisemptyset(set) (*(set) == (__sigset_t) 0)
|
||||
# define __sigandset(dest, left, right) \
|
||||
((*(dest) = (*(left) & *(right))), 0)
|
||||
# define __sigorset(dest, left, right) \
|
||||
((*(dest) = (*(left) | *(right))), 0)
|
||||
#endif
|
||||
|
||||
/* These functions needn't check for a bogus signal number -- error
|
||||
checking is done in the non __ versions. */
|
||||
|
||||
extern int __sigismember (__const __sigset_t *, int);
|
||||
extern int __sigaddset (__sigset_t *, int);
|
||||
extern int __sigdelset (__sigset_t *, int);
|
||||
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
# define __SIGSETFN(NAME, BODY, CONST) \
|
||||
_EXTERN_INLINE int \
|
||||
NAME (CONST __sigset_t *__set, int __sig) \
|
||||
{ \
|
||||
__sigset_t __mask = __sigmask (__sig); \
|
||||
return BODY; \
|
||||
}
|
||||
|
||||
__SIGSETFN (__sigismember, (*__set & __mask) ? 1 : 0, __const)
|
||||
__SIGSETFN (__sigaddset, ((*__set |= __mask), 0), )
|
||||
__SIGSETFN (__sigdelset, ((*__set &= ~__mask), 0), )
|
||||
|
||||
# undef __SIGSETFN
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* ! _SIGSET_H_fns. */
|
||||
@@ -1,55 +0,0 @@
|
||||
/* sigstack, sigaltstack definitions.
|
||||
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SIGNAL_H
|
||||
# error "Never include this file directly. Use <signal.h> instead"
|
||||
#endif
|
||||
|
||||
|
||||
/* Structure describing a signal stack (obsolete). */
|
||||
struct sigstack
|
||||
{
|
||||
__ptr_t ss_sp; /* Signal stack pointer. */
|
||||
int ss_onstack; /* Nonzero if executing on this stack. */
|
||||
};
|
||||
|
||||
|
||||
/* Alternate, preferred interface. */
|
||||
typedef struct sigaltstack
|
||||
{
|
||||
__ptr_t ss_sp;
|
||||
size_t ss_size;
|
||||
int ss_flags;
|
||||
} stack_t;
|
||||
|
||||
|
||||
/* Possible values for `ss_flags.'. */
|
||||
enum
|
||||
{
|
||||
SS_ONSTACK = 0x0001,
|
||||
#define SS_ONSTACK SS_ONSTACK
|
||||
SS_DISABLE = 0x0004
|
||||
#define SS_DISABLE SS_DISABLE
|
||||
};
|
||||
|
||||
/* Minumum stack size for a signal handler. */
|
||||
#define MINSIGSTKSZ 8192
|
||||
|
||||
/* System default stack size. */
|
||||
#define SIGSTKSZ (MINSIGSTKSZ + 32768)
|
||||
@@ -1,44 +0,0 @@
|
||||
/* Definition of `struct sockaddr_*' common members. Generic/4.2 BSD version.
|
||||
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; use <sys/socket.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_SOCKADDR_H
|
||||
#define _BITS_SOCKADDR_H 1
|
||||
|
||||
|
||||
/* POSIX.1g specifies this type name for the `sa_family' member. */
|
||||
typedef unsigned short int sa_family_t;
|
||||
|
||||
/* This macro is used to declare the initial common members
|
||||
of the data types used for socket addresses, `struct sockaddr',
|
||||
`struct sockaddr_in', `struct sockaddr_un', etc. */
|
||||
|
||||
#define __SOCKADDR_COMMON(sa_prefix) \
|
||||
sa_family_t sa_prefix##family
|
||||
|
||||
#define __SOCKADDR_COMMON_SIZE (sizeof (unsigned short int))
|
||||
|
||||
/* Return the length of a `sockaddr' structure. */
|
||||
#define SA_LEN(_x) __libc_sa_len((_x)->sa_family)
|
||||
extern int __libc_sa_len __P ((sa_family_t __af));
|
||||
|
||||
#endif /* bits/sockaddr.h */
|
||||
-248
@@ -1,248 +0,0 @@
|
||||
/* System-specific socket constants and types. Generic/4.3 BSD version.
|
||||
Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef __BITS_SOCKET_H
|
||||
#define __BITS_SOCKET_H 1
|
||||
|
||||
#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
|
||||
# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
|
||||
#endif
|
||||
|
||||
#include <limits.h>
|
||||
#include <bits/types.h>
|
||||
|
||||
#define __need_size_t
|
||||
#include <stddef.h>
|
||||
|
||||
/* Type for length arguments in socket calls. */
|
||||
typedef unsigned int socklen_t;
|
||||
|
||||
|
||||
/* Types of sockets. */
|
||||
enum __socket_type
|
||||
{
|
||||
SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
|
||||
byte streams. */
|
||||
#define SOCK_STREAM SOCK_STREAM
|
||||
SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
|
||||
of fixed maximum length. */
|
||||
#define SOCK_DGRAM SOCK_DGRAM
|
||||
SOCK_RAW = 3, /* Raw protocol interface. */
|
||||
#define SOCK_RAW SOCK_RAW
|
||||
SOCK_RDM = 4, /* Reliably-delivered messages. */
|
||||
#define SOCK_RDM SOCK_RDM
|
||||
SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
|
||||
datagrams of fixed maximum length. */
|
||||
#define SOCK_SEQPACKET SOCK_SEQPACKET
|
||||
};
|
||||
|
||||
/* Protocol families. */
|
||||
#define PF_UNSPEC 0 /* Unspecified. */
|
||||
#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
|
||||
#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
|
||||
#define PF_FILE PF_LOCAL /* POSIX name for PF_LOCAL. */
|
||||
#define PF_INET 2 /* IP protocol family. */
|
||||
#define PF_IMPLINK 3 /* ARPAnet IMP protocol. */
|
||||
#define PF_PUP 4 /* PUP protocols. */
|
||||
#define PF_CHAOS 5 /* MIT Chaos protocols. */
|
||||
#define PF_NS 6 /* Xerox NS protocols. */
|
||||
#define PF_ISO 7 /* ISO protocols. */
|
||||
#define PF_OSI PF_ISO
|
||||
#define PF_ECMA 8 /* ECMA protocols. */
|
||||
#define PF_DATAKIT 9 /* AT&T Datakit protocols. */
|
||||
#define PF_CCITT 10 /* CCITT protocols (X.25 et al). */
|
||||
#define PF_SNA 11 /* IBM SNA protocol. */
|
||||
#define PF_DECnet 12 /* DECnet protocols. */
|
||||
#define PF_DLI 13 /* Direct data link interface. */
|
||||
#define PF_LAT 14 /* DEC Local Area Transport protocol. */
|
||||
#define PF_HYLINK 15 /* NSC Hyperchannel protocol. */
|
||||
#define PF_APPLETALK 16 /* Don't use this. */
|
||||
#define PF_ROUTE 17 /* Internal Routing Protocol. */
|
||||
#define PF_LINK 18 /* Link layer interface. */
|
||||
#define PF_XTP 19 /* eXpress Transfer Protocol (no AF). */
|
||||
#define PF_COIP 20 /* Connection-oriented IP, aka ST II. */
|
||||
#define PF_CNT 21 /* Computer Network Technology. */
|
||||
#define PF_RTIP 22 /* Help Identify RTIP packets. **/
|
||||
#define PF_IPX 23 /* Novell Internet Protocol. */
|
||||
#define PF_SIP 24 /* Simple Internet Protocol. */
|
||||
#define PF_PIP 25 /* Help Identify PIP packets. */
|
||||
#define PF_INET6 26 /* IP version 6. */
|
||||
#define PF_MAX 27
|
||||
|
||||
/* Address families. */
|
||||
#define AF_UNSPEC PF_UNSPEC
|
||||
#define AF_LOCAL PF_LOCAL
|
||||
#define AF_UNIX PF_UNIX
|
||||
#define AF_FILE PF_FILE
|
||||
#define AF_INET PF_INET
|
||||
#define AF_IMPLINK PF_IMPLINK
|
||||
#define AF_PUP PF_PUP
|
||||
#define AF_CHAOS PF_CHAOS
|
||||
#define AF_NS PF_NS
|
||||
#define AF_ISO PF_ISO
|
||||
#define AF_OSI PF_OSI
|
||||
#define AF_ECMA PF_ECMA
|
||||
#define AF_DATAKIT PF_DATAKIT
|
||||
#define AF_CCITT PF_CCITT
|
||||
#define AF_SNA PF_SNA
|
||||
#define AF_DECnet PF_DECnet
|
||||
#define AF_DLI PF_DLI
|
||||
#define AF_LAT PF_LAT
|
||||
#define AF_HYLINK PF_HYLINK
|
||||
#define AF_APPLETALK PF_APPLETALK
|
||||
#define AF_ROUTE PF_ROUTE
|
||||
#define AF_LINK PF_LINK
|
||||
#define pseudo_AF_XTP PF_XTP
|
||||
#define AF_COIP PF_COIP
|
||||
#define AF_CNT PF_CNT
|
||||
#define pseudo_AF_RTIP PF_RTIP
|
||||
#define AF_IPX PF_IPX
|
||||
#define AF_SIP PF_SIP
|
||||
#define pseudo_AF_PIP PF_PIP
|
||||
#define AF_INET6 PF_INET6
|
||||
#define AF_MAX PF_MAX
|
||||
|
||||
|
||||
/* Get the definition of the macro to define the common sockaddr members. */
|
||||
#include <bits/sockaddr.h>
|
||||
|
||||
/* Structure describing a generic socket address. */
|
||||
struct sockaddr
|
||||
{
|
||||
__SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
|
||||
char sa_data[14]; /* Address data. */
|
||||
};
|
||||
|
||||
|
||||
/* Structure large enough to hold any socket address (with the historical
|
||||
exception of AF_UNIX). We reserve 128 bytes. */
|
||||
#if ULONG_MAX > 0xffffffff
|
||||
# define __ss_align __uint64_t
|
||||
#else
|
||||
# define __ss_align __uint32_t
|
||||
#endif
|
||||
#define _SS_SIZE 128
|
||||
#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_align)))
|
||||
|
||||
struct sockaddr_storage
|
||||
{
|
||||
__SOCKADDR_COMMON (__ss_); /* Address family, etc. */
|
||||
__ss_align __ss_align; /* Force desired alignment. */
|
||||
char __ss_padding[_SS_PADSIZE];
|
||||
};
|
||||
|
||||
|
||||
/* Bits in the FLAGS argument to `send', `recv', et al. */
|
||||
enum
|
||||
{
|
||||
MSG_OOB = 0x01, /* Process out-of-band data. */
|
||||
#define MSG_OOB MSG_OOB
|
||||
MSG_PEEK = 0x02, /* Peek at incoming messages. */
|
||||
#define MSG_PEEK MSG_PEEK
|
||||
MSG_DONTROUTE = 0x04, /* Don't use local routing. */
|
||||
#define MSG_DONTROUTE MSG_DONTROUTE
|
||||
MSG_EOR = 0x08, /* Data completes record. */
|
||||
#define MSG_EOR MSG_EOR
|
||||
MSG_TRUNC = 0x10, /* Data discarded before delivery. */
|
||||
#define MSG_TRUNC MSG_TRUNC
|
||||
MSG_CTRUNC = 0x20, /* Control data lost before delivery. */
|
||||
#define MSG_CTRUNC MSG_CTRUNC
|
||||
MSG_WAITALL = 0x40, /* Wait for full request or error. */
|
||||
#define MSG_WAITALL MSG_WAITALL
|
||||
MSG_DONTWAIT = 0x80, /* This message should be nonblocking. */
|
||||
#define MSG_DONTWAIT MSG_DONTWAIT
|
||||
};
|
||||
|
||||
|
||||
/* Structure describing messages sent by
|
||||
`sendmsg' and received by `recvmsg'. */
|
||||
struct msghdr
|
||||
{
|
||||
__ptr_t msg_name; /* Address to send to/receive from. */
|
||||
socklen_t msg_namelen; /* Length of address data. */
|
||||
|
||||
struct iovec *msg_iov; /* Vector of data to send/receive into. */
|
||||
int msg_iovlen; /* Number of elements in the vector. */
|
||||
|
||||
__ptr_t msg_accrights; /* Access rights information. */
|
||||
socklen_t msg_accrightslen; /* Length of access rights information. */
|
||||
|
||||
int msg_flags; /* Flags in received message. */
|
||||
};
|
||||
|
||||
|
||||
/* Protocol number used to manipulate socket-level options
|
||||
with `getsockopt' and `setsockopt'. */
|
||||
#define SOL_SOCKET 0xffff
|
||||
|
||||
/* Socket-level options for `getsockopt' and `setsockopt'. */
|
||||
enum
|
||||
{
|
||||
SO_DEBUG = 0x0001, /* Record debugging information. */
|
||||
#define SO_DEBUG SO_DEBUG
|
||||
SO_ACCEPTCONN = 0x0002, /* Accept connections on socket. */
|
||||
#define SO_ACCEPTCONN SO_ACCEPTCONN
|
||||
SO_REUSEADDR = 0x0004, /* Allow reuse of local addresses. */
|
||||
#define SO_REUSEADDR SO_REUSEADDR
|
||||
SO_KEEPALIVE = 0x0008, /* Keep connections alive and send
|
||||
SIGPIPE when they die. */
|
||||
#define SO_KEEPALIVE SO_KEEPALIVE
|
||||
SO_DONTROUTE = 0x0010, /* Don't do local routing. */
|
||||
#define SO_DONTROUTE SO_DONTROUTE
|
||||
SO_BROADCAST = 0x0020, /* Allow transmission of
|
||||
broadcast messages. */
|
||||
#define SO_BROADCAST SO_BROADCAST
|
||||
SO_USELOOPBACK = 0x0040, /* Use the software loopback to avoid
|
||||
hardware use when possible. */
|
||||
#define SO_USELOOPBACK SO_USELOOPBACK
|
||||
SO_LINGER = 0x0080, /* Block on close of a reliable
|
||||
socket to transmit pending data. */
|
||||
#define SO_LINGER SO_LINGER
|
||||
SO_OOBINLINE = 0x0100, /* Receive out-of-band data in-band. */
|
||||
#define SO_OOBINLINE SO_OOBINLINE
|
||||
SO_REUSEPORT = 0x0200, /* Allow local address and port reuse. */
|
||||
#define SO_REUSEPORT SO_REUSEPORT
|
||||
SO_SNDBUF = 0x1001, /* Send buffer size. */
|
||||
#define SO_SNDBUF SO_SNDBUF
|
||||
SO_RCVBUF = 0x1002, /* Receive buffer. */
|
||||
#define SO_RCVBUF SO_RCVBUF
|
||||
SO_SNDLOWAT = 0x1003, /* Send low-water mark. */
|
||||
#define SO_SNDLOWAT SO_SNDLOWAT
|
||||
SO_RCVLOWAT = 0x1004, /* Receive low-water mark. */
|
||||
#define SO_RCVLOWAT SO_RCVLOWAT
|
||||
SO_SNDTIMEO = 0x1005, /* Send timeout. */
|
||||
#define SO_SNDTIMEO SO_SNDTIMEO
|
||||
SO_RCVTIMEO = 0x1006, /* Receive timeout. */
|
||||
#define SO_RCVTIMEO SO_RCVTIMEO
|
||||
SO_ERROR = 0x1007, /* Get and clear error status. */
|
||||
#define SO_ERROR SO_ERROR
|
||||
SO_STYLE = 0x1008, /* Get socket connection style. */
|
||||
#define SO_STYLE SO_STYLE
|
||||
SO_TYPE = SO_STYLE, /* Compatible name for SO_STYLE. */
|
||||
#define SO_TYPE SO_TYPE
|
||||
};
|
||||
|
||||
/* Structure used to manipulate the SO_LINGER option. */
|
||||
struct linger
|
||||
{
|
||||
int l_onoff; /* Nonzero to linger on close. */
|
||||
int l_linger; /* Time to linger. */
|
||||
};
|
||||
|
||||
#endif /* bits/socket.h */
|
||||
-94
@@ -1,94 +0,0 @@
|
||||
/* Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_STAT_H
|
||||
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
|
||||
#endif
|
||||
|
||||
/* This structure needs to be defined in accordance with the
|
||||
implementation of __stat, __fstat, and __lstat. */
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Structure describing file characteristics. */
|
||||
struct stat
|
||||
{
|
||||
/* These are the members that POSIX.1 requires. */
|
||||
|
||||
__mode_t st_mode; /* File mode. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__ino_t st_ino; /* File serial number. */
|
||||
#else
|
||||
__ino64_t st_ino; /* File serial number. */
|
||||
#endif
|
||||
__dev_t st_dev; /* Device containing the file. */
|
||||
__nlink_t st_nlink; /* Link count. */
|
||||
|
||||
__uid_t st_uid; /* User ID of the file's owner. */
|
||||
__gid_t st_gid; /* Group ID of the file's group. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__off_t st_size; /* Size of file, in bytes. */
|
||||
#else
|
||||
__off64_t st_size; /* Size of file, in bytes. */
|
||||
#endif
|
||||
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
|
||||
/* This should be defined if there is a `st_blksize' member. */
|
||||
#undef _STATBUF_ST_BLKSIZE
|
||||
};
|
||||
|
||||
/* Encoding of the file mode. These are the standard Unix values,
|
||||
but POSIX.1 does not specify what values should be used. */
|
||||
|
||||
#define __S_IFMT 0170000 /* These bits determine file type. */
|
||||
|
||||
/* File types. */
|
||||
#define __S_IFDIR 0040000 /* Directory. */
|
||||
#define __S_IFCHR 0020000 /* Character device. */
|
||||
#define __S_IFBLK 0060000 /* Block device. */
|
||||
#define __S_IFREG 0100000 /* Regular file. */
|
||||
#define __S_IFIFO 0010000 /* FIFO. */
|
||||
|
||||
/* Protection bits. */
|
||||
|
||||
#define __S_ISUID 04000 /* Set user ID on execution. */
|
||||
#define __S_ISGID 02000 /* Set group ID on execution. */
|
||||
#define __S_IREAD 0400 /* Read by owner. */
|
||||
#define __S_IWRITE 0200 /* Write by owner. */
|
||||
#define __S_IEXEC 0100 /* Execute by owner. */
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct stat64
|
||||
{
|
||||
__mode_t st_mode; /* File mode. */
|
||||
__ino64_t st_ino; /* File serial number. */
|
||||
__dev_t st_dev; /* Device. */
|
||||
__nlink_t st_nlink; /* Link count. */
|
||||
|
||||
__uid_t st_uid; /* User ID of the file's owner. */
|
||||
__gid_t st_gid; /* Group ID of the file's group.*/
|
||||
__off64_t st_size; /* Size of file, in bytes. */
|
||||
|
||||
__time_t st_atime; /* Time of last access. */
|
||||
__time_t st_mtime; /* Time of last modification. */
|
||||
__time_t st_ctime; /* Time of last status change. */
|
||||
};
|
||||
#endif
|
||||
@@ -1,70 +0,0 @@
|
||||
/* Definition of `struct statfs', information about a filesystem.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_STATFS_H
|
||||
# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* GNU Hurd NOTE: The size of this structure (16 ints) is known in
|
||||
<hurd/hurd_types.defs>, since it is used in the `file_statfs' RPC. MiG
|
||||
does not cope at all well with the passed C structure not being of the
|
||||
expected size. There are some filler words at the end to allow for
|
||||
future expansion. To increase the size of the structure used in the RPC
|
||||
and retain binary compatibility, we would need to assign a new message
|
||||
number. */
|
||||
|
||||
struct statfs
|
||||
{
|
||||
unsigned int f_type;
|
||||
unsigned int f_bsize;
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__fsblkcnt_t f_blocks;
|
||||
__fsblkcnt_t f_bfree;
|
||||
__fsblkcnt_t f_bavail;
|
||||
__fsblkcnt_t f_files;
|
||||
__fsblkcnt_t f_ffree;
|
||||
#else
|
||||
__fsblkcnt64_t f_blocks;
|
||||
__fsblkcnt64_t f_bfree;
|
||||
__fsblkcnt64_t f_bavail;
|
||||
__fsblkcnt64_t f_files;
|
||||
__fsblkcnt64_t f_ffree;
|
||||
#endif
|
||||
__fsid_t f_fsid;
|
||||
unsigned int f_namelen;
|
||||
unsigned int f_spare[6];
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct statfs64
|
||||
{
|
||||
unsigned int f_type;
|
||||
unsigned int f_bsize;
|
||||
__fsblkcnt64_t f_blocks;
|
||||
__fsblkcnt64_t f_bfree;
|
||||
__fsblkcnt64_t f_bavail;
|
||||
__fsblkcnt64_t f_files;
|
||||
__fsblkcnt64_t f_ffree;
|
||||
__fsid_t f_fsid;
|
||||
unsigned int f_namelen;
|
||||
unsigned int f_spare[6];
|
||||
};
|
||||
#endif
|
||||
@@ -1,84 +0,0 @@
|
||||
/* Definition of `struct statvfs', information about a filesystem.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_STATVFS_H
|
||||
# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
|
||||
#endif
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* GNU Hurd NOTE: The size of this structure (16 ints) is known in
|
||||
<hurd/hurd_types.defs>, since it is used in the `file_statfs' RPC. MiG
|
||||
does not cope at all well with the passed C structure not being of the
|
||||
expected size. There are some filler words at the end to allow for
|
||||
future expansion. To increase the size of the structure used in the RPC
|
||||
and retain binary compatibility, we would need to assign a new message
|
||||
number. */
|
||||
|
||||
struct statvfs
|
||||
{
|
||||
unsigned long int f_bsize;
|
||||
unsigned long int f_frsize;
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
__fsblkcnt_t f_blocks;
|
||||
__fsblkcnt_t f_bfree;
|
||||
__fsblkcnt_t f_bavail;
|
||||
__fsfilcnt_t f_files;
|
||||
__fsfilcnt_t f_ffree;
|
||||
__fsfilcnt_t f_favail;
|
||||
#else
|
||||
__fsblkcnt64_t f_blocks;
|
||||
__fsblkcnt64_t f_bfree;
|
||||
__fsblkcnt64_t f_bavail;
|
||||
__fsfilcnt64_t f_files;
|
||||
__fsfilcnt64_t f_ffree;
|
||||
__fsfilcnt64_t f_favail;
|
||||
#endif
|
||||
__fsid_t f_fsid;
|
||||
unsigned long int f_flag;
|
||||
unsigned long int f_namemax;
|
||||
unsigned int f_spare[6];
|
||||
};
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
struct statvfs64
|
||||
{
|
||||
unsigned long int f_bsize;
|
||||
unsigned long int f_frsize;
|
||||
__fsblkcnt64_t f_blocks;
|
||||
__fsblkcnt64_t f_bfree;
|
||||
__fsblkcnt64_t f_bavail;
|
||||
__fsfilcnt64_t f_files;
|
||||
__fsfilcnt64_t f_ffree;
|
||||
__fsfilcnt64_t f_favail;
|
||||
__fsid_t f_fsid;
|
||||
unsigned long int f_flag;
|
||||
unsigned long int f_namemax;
|
||||
unsigned int f_spare[6];
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Definitions for the flag in `f_flag'. */
|
||||
enum
|
||||
{
|
||||
ST_RDONLY = 1,
|
||||
#define ST_RDONLY ST_RDONLY
|
||||
ST_NOSUID = 2
|
||||
#define ST_NOSUID ST_NOSUID
|
||||
};
|
||||
@@ -1,12 +0,0 @@
|
||||
/* This file should provide inline versions of string functions.
|
||||
|
||||
Surround GCC-specific parts with #ifdef __GNUC__, and use `extern __inline'.
|
||||
|
||||
This file should define __STRING_INLINES if functions are actually defined
|
||||
as inlines. */
|
||||
|
||||
#ifndef _BITS_STRING_H
|
||||
#define _BITS_STRING_H 1
|
||||
|
||||
|
||||
#endif /* bits/string.h */
|
||||
-211
@@ -1,211 +0,0 @@
|
||||
/* Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _BITS_STROPTS_H
|
||||
#define _BITS_STROPTS_H 1
|
||||
|
||||
#include <bits/types.h>
|
||||
|
||||
/* Macros used as `request' argument to `ioctl'. */
|
||||
#define I_PUSH 1 /* Push STREAMS module onto top of the current
|
||||
STREAM, just below the STREAM head. */
|
||||
#define I_POP 2 /* Remove STREAMS module from just below the
|
||||
STREAM head. */
|
||||
#define I_LOOK 3 /* Retrieve the name of the module just below
|
||||
the STREAM head and place it in a character
|
||||
string. */
|
||||
#define I_FLUSH 4 /* Flush all input and/or output. */
|
||||
#define I_FLUSHBAND 5 /* Flush only band specified. */
|
||||
#define I_SETSIG 6 /* Inform the STREAM head that the process
|
||||
wants the SIGPOLL signal issued. */
|
||||
#define I_GETSIG 7 /* Return the events for which the calling
|
||||
process is currently registered to be sent
|
||||
a SIGPOLL signal. */
|
||||
#define I_FIND 8 /* Compares the names of all modules currently
|
||||
present in the STREAM to the name pointed to
|
||||
by `arg'. */
|
||||
#define I_PEEK 9 /* Allows a process to retrieve the information
|
||||
in the first message on the STREAM head read
|
||||
queue without taking the message off the
|
||||
queue. */
|
||||
#define I_SRDOPT 10 /* Sets the read mode. */
|
||||
#define I_GRDOPT 11 /* Returns the current read mode setting. */
|
||||
#define I_NREAD 12 /* Counts the number of data bytes in the data
|
||||
block in the first message. */
|
||||
#define I_FDINSERT 13 /* Create a message from the specified
|
||||
buffer(s), adds information about another
|
||||
STREAM, and send the message downstream. */
|
||||
#define I_STR 14 /* Construct an internal STREAMS `ioctl'
|
||||
message and send that message downstream. */
|
||||
#define I_SWROPT 15 /* Set the write mode. */
|
||||
#define I_GWRSET 16 /* Return the current write mode setting. */
|
||||
#define I_SENDFD 17 /* Requests the STREAM associated with `fildes'
|
||||
to send a message, containing a file
|
||||
pointer, to the STREAM head at the other end
|
||||
of a STREAMS pipe. */
|
||||
#define I_RECVFD 18 /* Retrieve the file descriptor associated with
|
||||
the message sent by an I_SENDFD `ioctl'
|
||||
over a STREAMS pipe. */
|
||||
#define I_LIST 19 /* List all the module names on the STREAM, up
|
||||
to and including the topmost driver name. */
|
||||
#define I_ATMARK 20 /* See if the current message on the STREAM
|
||||
head read queue is "marked" by some module
|
||||
downstream. */
|
||||
#define I_CKBAND 21 /* Check if the message of a given priority
|
||||
band exists on the STREAM head read
|
||||
queue. */
|
||||
#define I_GETBAND 22 /* Return the priority band of the first
|
||||
message on the STREAM head read queue. */
|
||||
#define I_CANPUT 23 /* Check if a certain band is writable. */
|
||||
#define I_SETCLTIME 24 /* Set the time the STREAM head will delay when
|
||||
a STREAM is closing and there is data on
|
||||
the write queues. */
|
||||
#define I_LINK 25 /* Connect two STREAMs. */
|
||||
#define I_UNLINK 26 /* Disconnects the two STREAMs. */
|
||||
#define I_PLINK 27 /* Connect two STREAMs with a persistent
|
||||
link. */
|
||||
#define I_PUNLINK 28 /* Disconnect the two STREAMs that were
|
||||
connected with a persistent link. */
|
||||
|
||||
|
||||
/* Used in `I_LOOK' request. */
|
||||
#define FMNAMESZ 255
|
||||
|
||||
/* Flush options. */
|
||||
#define FLUSHR 1 /* Flush read queues. */
|
||||
#define FLUSHW 2 /* Flush write queues. */
|
||||
#define FLUSHRW 3 /* Flush read and write queues. */
|
||||
|
||||
/* Possible arguments for `I_SETSIG'. */
|
||||
#define S_RDNORM 0x0001 /* A normal message has arrived. */
|
||||
#define S_RDBAND 0x0002 /* A message with a non-zero priority has
|
||||
arrived. */
|
||||
#define S_INPUT 0x0004 /* A message, other than a high-priority
|
||||
message, has arrived. */
|
||||
#define S_HIPRI 0x0008 /* A high-priority message is present. */
|
||||
#define S_OUTPUT 0x0010 /* The write queue for normal data is no longer
|
||||
full. */
|
||||
#define S_WRNORM S_OUTPUT
|
||||
#define S_WRBAND 0x0020 /* The write queue for a non-zero priority
|
||||
band is no longer full. */
|
||||
#define S_MSG 0x0040 /* A STREAMS signal message that contains the
|
||||
SIGPOLL signal reaches the front of the
|
||||
STREAM head read queue. */
|
||||
#define S_ERROR 0x0080 /* Notification of an error condition. */
|
||||
#define S_HANGUP 0x0100 /* Notification of a hangup. */
|
||||
#define S_BANDURG 0x0200 /* When used in conjunction with S_RDBAND,
|
||||
SIGURG is generated instead of SIGPOLL when
|
||||
a priority message reaches the front of the
|
||||
STREAM head read queue. */
|
||||
|
||||
/* Option for `I_PEEK'. */
|
||||
#define RS_HIPRI 1 /* Only look for high-priority messages. */
|
||||
|
||||
/* Options for `I_SRDOPT'. */
|
||||
#define RDNORM 1 /* Byte-STREAM mode, the default. */
|
||||
#define RMSGD 2 /* Message-discard mode. */
|
||||
#define RMSGN 3 /* Message-nondiscard mode. */
|
||||
#define RPROTNORM 4 /* Fail `read' with EBADMSG if a message
|
||||
containing a control part is at the front
|
||||
of the STREAM head read queue. */
|
||||
#define RPROTDAT 5 /* Deliver the control part of a message as
|
||||
data. */
|
||||
#define RPROTDIS 6 /* Discard the control part of a message,
|
||||
delivering any data part. */
|
||||
|
||||
/* Possible mode for `I_SWROPT'. */
|
||||
#define SNDZERO 1 /* Send a zero-length message downstream when a
|
||||
`write' of 0 bytes occurs. */
|
||||
|
||||
/* Arguments for `I_ATMARK'. */
|
||||
#define ANYMARK 1 /* Check if the message is marked. */
|
||||
#define LASTMARK 2 /* Check if the message is the last one marked
|
||||
on the queue. */
|
||||
|
||||
/* Argument for `I_UNLINK'. */
|
||||
#define MUXID_ALL 1 /* Unlink all STREAMs linked to the STREAM
|
||||
associated with `fildes'. */
|
||||
|
||||
|
||||
/* Macros for `getmsg', `getpmsg', `putmsg' and `putpmsg'. */
|
||||
#define MSG_ANY 1 /* Receive any message. */
|
||||
#define MSG_BAND 2 /* Receive message from specified band. */
|
||||
#define MSG_HIPRI 3 /* Send/receive high priority message. */
|
||||
#define MORECTL 4 /* More control information is left in
|
||||
message. */
|
||||
#define MOREDATA 5 /* More data is left in message. */
|
||||
|
||||
|
||||
/* Structure used for the I_FLUSHBAND ioctl on streams. */
|
||||
struct bandinfo
|
||||
{
|
||||
unsigned char bi_pri;
|
||||
int bi_flag;
|
||||
};
|
||||
|
||||
struct strbuf
|
||||
{
|
||||
int maxlen; /* Maximum buffer length. */
|
||||
int len; /* Length of data. */
|
||||
char *buf; /* Pointer to buffer. */
|
||||
};
|
||||
|
||||
struct strpeek
|
||||
{
|
||||
struct strbuf ctlbuf;
|
||||
struct strbuf databuf;
|
||||
__t_uscalar_t flags;
|
||||
};
|
||||
|
||||
struct strfdinsert
|
||||
{
|
||||
struct strbuf ctlbuf;
|
||||
struct strbuf databuf;
|
||||
__t_uscalar_t flags;
|
||||
int fildes;
|
||||
int offset;
|
||||
};
|
||||
|
||||
struct strioctl
|
||||
{
|
||||
int ic_cmd;
|
||||
int ic_timout;
|
||||
int ic_len;
|
||||
char *ic_dp;
|
||||
};
|
||||
|
||||
struct strrecvfd
|
||||
{
|
||||
int fd;
|
||||
__uid_t uid;
|
||||
__gid_t gid;
|
||||
};
|
||||
|
||||
|
||||
struct str_mlist
|
||||
{
|
||||
char l_name[FMNAMESZ + 1];
|
||||
};
|
||||
|
||||
struct str_list
|
||||
{
|
||||
int sl_nmods;
|
||||
struct str_mlist *sl_modlist;
|
||||
};
|
||||
|
||||
#endif /* bits/stropts.h */
|
||||
-235
@@ -1,235 +0,0 @@
|
||||
/* termios type and macro definitions. 4.4 BSD/generic GNU version.
|
||||
Copyright (C) 1993,94,96,97,99 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _TERMIOS_H
|
||||
# error "Never include <bits/termios.h> directly; use <termios.h> instead."
|
||||
#endif
|
||||
|
||||
/* These macros are also defined in some <bits/ioctls.h> files (with
|
||||
numerically identical values), but this serves to shut up cpp's
|
||||
complaining. */
|
||||
#ifdef __USE_BSD
|
||||
|
||||
# ifdef MDMBUF
|
||||
# undef MDMBUF
|
||||
# endif
|
||||
# ifdef FLUSHO
|
||||
# undef FLUSHO
|
||||
# endif
|
||||
# ifdef PENDIN
|
||||
# undef PENDIN
|
||||
# endif
|
||||
|
||||
#endif /* __USE_BSD */
|
||||
|
||||
#ifdef ECHO
|
||||
# undef ECHO
|
||||
#endif
|
||||
#ifdef TOSTOP
|
||||
# undef TOSTOP
|
||||
#endif
|
||||
#ifdef NOFLSH
|
||||
# undef NOFLSH
|
||||
#endif
|
||||
|
||||
|
||||
/* These definitions match those used by the 4.4 BSD kernel.
|
||||
If the operating system has termios system calls or ioctls that
|
||||
correctly implement the POSIX.1 behavior, there should be a
|
||||
system-dependent version of this file that defines `struct termios',
|
||||
`tcflag_t', `cc_t', `speed_t' and the `TC*' constants appropriately. */
|
||||
|
||||
/* Type of terminal control flag masks. */
|
||||
typedef unsigned long int tcflag_t;
|
||||
|
||||
/* Type of control characters. */
|
||||
typedef unsigned char cc_t;
|
||||
|
||||
/* Type of baud rate specifiers. */
|
||||
typedef long int speed_t;
|
||||
|
||||
/* Terminal control structure. */
|
||||
struct termios
|
||||
{
|
||||
/* Input modes. */
|
||||
tcflag_t c_iflag;
|
||||
#define IGNBRK (1 << 0) /* Ignore break condition. */
|
||||
#define BRKINT (1 << 1) /* Signal interrupt on break. */
|
||||
#define IGNPAR (1 << 2) /* Ignore characters with parity errors. */
|
||||
#define PARMRK (1 << 3) /* Mark parity and framing errors. */
|
||||
#define INPCK (1 << 4) /* Enable input parity check. */
|
||||
#define ISTRIP (1 << 5) /* Strip 8th bit off characters. */
|
||||
#define INLCR (1 << 6) /* Map NL to CR on input. */
|
||||
#define IGNCR (1 << 7) /* Ignore CR. */
|
||||
#define ICRNL (1 << 8) /* Map CR to NL on input. */
|
||||
#define IXON (1 << 9) /* Enable start/stop output control. */
|
||||
#define IXOFF (1 << 10) /* Enable start/stop input control. */
|
||||
#ifdef __USE_BSD
|
||||
#define IXANY (1 << 11) /* Any character will restart after stop. */
|
||||
#define IMAXBEL (1 << 13) /* Ring bell when input queue is full. */
|
||||
#endif
|
||||
|
||||
/* Output modes. */
|
||||
tcflag_t c_oflag;
|
||||
#define OPOST (1 << 0) /* Perform output processing. */
|
||||
#ifdef __USE_BSD
|
||||
# define ONLCR (1 << 1) /* Map NL to CR-NL on output. */
|
||||
# define OXTABS (1 << 2) /* Expand tabs to spaces. */
|
||||
# define ONOEOT (1 << 8) /* Discard EOT (^D) on output. */
|
||||
#endif
|
||||
|
||||
/* Control modes. */
|
||||
tcflag_t c_cflag;
|
||||
#ifdef __USE_BSD
|
||||
# define CIGNORE (1 << 0) /* Ignore these control flags. */
|
||||
#endif
|
||||
#define CSIZE (CS5|CS6|CS7|CS8) /* Number of bits per byte (mask). */
|
||||
#define CS5 0 /* 5 bits per byte. */
|
||||
#define CS6 (1 << 8) /* 6 bits per byte. */
|
||||
#define CS7 (1 << 9) /* 7 bits per byte. */
|
||||
#define CS8 (CS6|CS7) /* 8 bits per byte. */
|
||||
#define CSTOPB (1 << 10) /* Two stop bits instead of one. */
|
||||
#define CREAD (1 << 11) /* Enable receiver. */
|
||||
#define PARENB (1 << 12) /* Parity enable. */
|
||||
#define PARODD (1 << 13) /* Odd parity instead of even. */
|
||||
#define HUPCL (1 << 14) /* Hang up on last close. */
|
||||
#define CLOCAL (1 << 15) /* Ignore modem status lines. */
|
||||
#ifdef __USE_BSD
|
||||
# define CCTS_OFLOW (1 << 16) /* CTS flow control of output. */
|
||||
# define CRTS_IFLOW (1 << 17) /* RTS flow control of input. */
|
||||
# define CRTSCTS (CCTS_OFLOW|CRTS_IFLOW) /* CTS/RTS flow control. */
|
||||
# define MDMBUF (1 << 20) /* Carrier flow control of output. */
|
||||
#endif
|
||||
|
||||
/* Local modes. */
|
||||
tcflag_t c_lflag;
|
||||
#ifdef __USE_BSD
|
||||
# define ECHOKE (1 << 0) /* Visual erase for KILL. */
|
||||
#endif
|
||||
#define _ECHOE (1 << 1) /* Visual erase for ERASE. */
|
||||
#define ECHOE _ECHOE
|
||||
#define _ECHOK (1 << 2) /* Echo NL after KILL. */
|
||||
#define ECHOK _ECHOK
|
||||
#define _ECHO (1 << 3) /* Enable echo. */
|
||||
#define ECHO _ECHO
|
||||
#define _ECHONL (1 << 4) /* Echo NL even if ECHO is off. */
|
||||
#define ECHONL _ECHONL
|
||||
#ifdef __USE_BSD
|
||||
# define ECHOPRT (1 << 5) /* Hardcopy visual erase. */
|
||||
# define ECHOCTL (1 << 6) /* Echo control characters as ^X. */
|
||||
#endif
|
||||
#define _ISIG (1 << 7) /* Enable signals. */
|
||||
#define ISIG _ISIG
|
||||
#define _ICANON (1 << 8) /* Do erase and kill processing. */
|
||||
#define ICANON _ICANON
|
||||
#ifdef __USE_BSD
|
||||
# define ALTWERASE (1 << 9) /* Alternate WERASE algorithm. */
|
||||
#endif
|
||||
#define _IEXTEN (1 << 10) /* Enable DISCARD and LNEXT. */
|
||||
#define IEXTEN _IEXTEN
|
||||
#define EXTPROC (1 << 11) /* External processing. */
|
||||
#define _TOSTOP (1 << 22) /* Send SIGTTOU for background output. */
|
||||
#define TOSTOP _TOSTOP
|
||||
#ifdef __USE_BSD
|
||||
# define FLUSHO (1 << 23) /* Output being flushed (state). */
|
||||
# define NOKERNINFO (1 << 25) /* Disable VSTATUS. */
|
||||
# define PENDIN (1 << 29) /* Retype pending input (state). */
|
||||
#endif
|
||||
#define _NOFLSH (1 << 31) /* Disable flush after interrupt. */
|
||||
#define NOFLSH _NOFLSH
|
||||
|
||||
/* Control characters. */
|
||||
#define VEOF 0 /* End-of-file character [ICANON]. */
|
||||
#define VEOL 1 /* End-of-line character [ICANON]. */
|
||||
#ifdef __USE_BSD
|
||||
# define VEOL2 2 /* Second EOL character [ICANON]. */
|
||||
#endif
|
||||
#define VERASE 3 /* Erase character [ICANON]. */
|
||||
#ifdef __USE_BSD
|
||||
# define VWERASE 4 /* Word-erase character [ICANON]. */
|
||||
#endif
|
||||
#define VKILL 5 /* Kill-line character [ICANON]. */
|
||||
#ifdef __USE_BSD
|
||||
# define VREPRINT 6 /* Reprint-line character [ICANON]. */
|
||||
#endif
|
||||
#define VINTR 8 /* Interrupt character [ISIG]. */
|
||||
#define VQUIT 9 /* Quit character [ISIG]. */
|
||||
#define VSUSP 10 /* Suspend character [ISIG]. */
|
||||
#ifdef __USE_BSD
|
||||
# define VDSUSP 11 /* Delayed suspend character [ISIG]. */
|
||||
#endif
|
||||
#define VSTART 12 /* Start (X-ON) character [IXON, IXOFF]. */
|
||||
#define VSTOP 13 /* Stop (X-OFF) character [IXON, IXOFF]. */
|
||||
#ifdef __USE_BSD
|
||||
# define VLNEXT 14 /* Literal-next character [IEXTEN]. */
|
||||
# define VDISCARD 15 /* Discard character [IEXTEN]. */
|
||||
#endif
|
||||
#define VMIN 16 /* Minimum number of bytes read at once [!ICANON]. */
|
||||
#define VTIME 17 /* Time-out value (tenths of a second) [!ICANON]. */
|
||||
#ifdef __USE_BSD
|
||||
# define VSTATUS 18 /* Status character [ICANON]. */
|
||||
#endif
|
||||
#define NCCS 20 /* Value duplicated in <hurd/tioctl.defs>. */
|
||||
cc_t c_cc[NCCS];
|
||||
|
||||
/* Input and output baud rates. */
|
||||
speed_t __ispeed, __ospeed;
|
||||
#define B0 0 /* Hang up. */
|
||||
#define B50 50 /* 50 baud. */
|
||||
#define B75 75 /* 75 baud. */
|
||||
#define B110 110 /* 110 baud. */
|
||||
#define B134 134 /* 134.5 baud. */
|
||||
#define B150 150 /* 150 baud. */
|
||||
#define B200 200 /* 200 baud. */
|
||||
#define B300 300 /* 300 baud. */
|
||||
#define B600 600 /* 600 baud. */
|
||||
#define B1200 1200 /* 1200 baud. */
|
||||
#define B1800 1800 /* 1800 baud. */
|
||||
#define B2400 2400 /* 2400 baud. */
|
||||
#define B4800 4800 /* 4800 baud. */
|
||||
#define B9600 9600 /* 9600 baud. */
|
||||
#define B19200 19200 /* 19200 baud. */
|
||||
#define B38400 38400 /* 38400 baud. */
|
||||
#ifdef __USE_BSD
|
||||
# define EXTA 19200
|
||||
# define EXTB 38400
|
||||
#endif
|
||||
};
|
||||
|
||||
#define _IOT_termios /* Hurd ioctl type field. */ \
|
||||
_IOT (_IOTS (tcflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
|
||||
|
||||
/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. */
|
||||
#define TCSANOW 0 /* Change immediately. */
|
||||
#define TCSADRAIN 1 /* Change when pending output is written. */
|
||||
#define TCSAFLUSH 2 /* Flush pending input before changing. */
|
||||
#ifdef __USE_BSD
|
||||
# define TCSASOFT 0x10 /* Flag: Don't alter hardware state. */
|
||||
#endif
|
||||
|
||||
/* Values for the QUEUE_SELECTOR argument to `tcflush'. */
|
||||
#define TCIFLUSH 1 /* Discard data received but not yet read. */
|
||||
#define TCOFLUSH 2 /* Discard data written but not yet sent. */
|
||||
#define TCIOFLUSH 3 /* Discard all pending data. */
|
||||
|
||||
/* Values for the ACTION argument to `tcflow'. */
|
||||
#define TCOOFF 1 /* Suspend output. */
|
||||
#define TCOON 2 /* Restart suspended output. */
|
||||
#define TCIOFF 3 /* Send a STOP character. */
|
||||
#define TCION 4 /* Send a START character. */
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
/* System-dependent timing definitions. Stub version.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; use <time.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef __need_timeval
|
||||
# ifndef _BITS_TIME_H
|
||||
# define _BITS_TIME_H 1
|
||||
|
||||
# define CLOCKS_PER_SEC 60
|
||||
|
||||
# endif /* bits/time.h */
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __need_timeval
|
||||
# undef __need_timeval
|
||||
# ifndef _STRUCT_TIMEVAL
|
||||
# define _STRUCT_TIMEVAL 1
|
||||
/* A time value that is accurate to the nearest
|
||||
microsecond but also has a range of years. */
|
||||
struct timeval
|
||||
{
|
||||
__time_t tv_sec; /* Seconds. */
|
||||
__time_t tv_usec; /* Microseconds. */
|
||||
};
|
||||
# endif /* struct timeval */
|
||||
#endif /* need timeval */
|
||||
-137
@@ -1,137 +0,0 @@
|
||||
/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; use <sys/types.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef _BITS_TYPES_H
|
||||
#define _BITS_TYPES_H 1
|
||||
|
||||
#include <features.h>
|
||||
|
||||
#define __need_size_t
|
||||
#include <stddef.h>
|
||||
|
||||
/* Convenience types. */
|
||||
typedef unsigned char __u_char;
|
||||
typedef unsigned short __u_short;
|
||||
typedef unsigned int __u_int;
|
||||
typedef unsigned long __u_long;
|
||||
#ifdef __GNUC__
|
||||
typedef unsigned long long int __u_quad_t;
|
||||
typedef long long int __quad_t;
|
||||
#else
|
||||
typedef struct
|
||||
{
|
||||
long __val[2];
|
||||
} __quad_t;
|
||||
typedef struct
|
||||
{
|
||||
__u_long __val[2];
|
||||
} __u_quad_t;
|
||||
#endif
|
||||
typedef signed char __int8_t;
|
||||
typedef unsigned char __uint8_t;
|
||||
typedef signed short int __int16_t;
|
||||
typedef unsigned short int __uint16_t;
|
||||
typedef signed int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
#ifdef __GNUC__
|
||||
typedef signed long long int __int64_t;
|
||||
typedef unsigned long long int __uint64_t;
|
||||
#endif
|
||||
typedef __quad_t *__qaddr_t;
|
||||
|
||||
typedef int __dev_t; /* Type of device numbers. */
|
||||
typedef unsigned int __uid_t; /* Type of user identifications. */
|
||||
typedef unsigned int __gid_t; /* Type of group identifications. */
|
||||
typedef unsigned int __ino_t; /* Type of file serial numbers. */
|
||||
typedef __quad_t __ino64_t; /* Type of file serial numbers (LFS). */
|
||||
typedef unsigned int __mode_t; /* Type of file attribute bitmasks. */
|
||||
typedef unsigned short int __nlink_t; /* Type of file link counts. */
|
||||
typedef long int __off_t; /* Type of file sizes and offsets. */
|
||||
typedef __quad_t __loff_t; /* Type of file sizes and offsets. */
|
||||
typedef __loff_t __off64_t; /* Type of file sizes and offsets (LFS). */
|
||||
typedef int __pid_t; /* Type of process identifications. */
|
||||
typedef int __ssize_t; /* Type of a byte count, or error. */
|
||||
typedef __u_quad_t __fsid_t; /* Type of file system IDs. */
|
||||
typedef long int __clock_t; /* Type of CPU usage counts. */
|
||||
typedef long int __rlim_t; /* Type for resource measurement. */
|
||||
typedef __quad_t __rlim64_t; /* Type for resource measurement (LFS). */
|
||||
typedef unsigned int __id_t; /* General type for IDs. */
|
||||
|
||||
/* Everythin' else. */
|
||||
typedef long int __daddr_t; /* The type of a disk address. */
|
||||
typedef char *__caddr_t;
|
||||
typedef long int __time_t;
|
||||
typedef long int __swblk_t; /* Type of a swap block maybe? */
|
||||
typedef long int __key_t; /* Type of an IPC key */
|
||||
|
||||
|
||||
/* One element in the file descriptor mask array. */
|
||||
typedef unsigned long int __fd_mask;
|
||||
|
||||
/* Number of descriptors that can fit in an `fd_set'. */
|
||||
#define __FD_SETSIZE 256
|
||||
|
||||
/* It's easier to assume 8-bit bytes than to get CHAR_BIT. */
|
||||
#define __NFDBITS (sizeof (unsigned long int) * 8)
|
||||
#define __FDELT(d) ((d) / __NFDBITS)
|
||||
#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))
|
||||
|
||||
/* fd_set for select and pselect. */
|
||||
typedef struct
|
||||
{
|
||||
/* XPG4.2 requires this member name. Otherwise avoid the name
|
||||
from the user namespace. */
|
||||
#ifdef __USE_XOPEN
|
||||
__fd_mask fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
|
||||
# define __FDS_BITS(set) ((set)->fds_bits)
|
||||
#else
|
||||
__fd_mask __fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
|
||||
# define __FDS_BITS(set) ((set)->__fds_bits)
|
||||
#endif
|
||||
} __fd_set;
|
||||
|
||||
/* XXX Used in `struct shmid_ds'. */
|
||||
typedef unsigned short int __ipc_pid_t;
|
||||
|
||||
|
||||
/* Types from the Large File Support interface. */
|
||||
|
||||
/* Type to count number os disk blocks. */
|
||||
typedef long int __blkcnt_t;
|
||||
typedef __quad_t __blkcnt64_t;
|
||||
|
||||
/* Type to count file system blocks. */
|
||||
typedef unsigned int __fsblkcnt_t;
|
||||
typedef __u_quad_t __fsblkcnt64_t;
|
||||
|
||||
/* Type to count file system inodes. */
|
||||
typedef unsigned long int __fsfilcnt_t;
|
||||
typedef __u_quad_t __fsfilcnt64_t;
|
||||
|
||||
/* Used in XTI. */
|
||||
typedef int __t_scalar_t;
|
||||
typedef unsigned int __t_uscalar_t;
|
||||
|
||||
/* Duplicates info from stdint.h but this is used in unistd.h. */
|
||||
typedef long int __intptr_t;
|
||||
|
||||
#endif /* bits/types.h */
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
/* The `struct utmp' type, describing entries in the utmp file. Generic/BSDish
|
||||
Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _UTMP_H
|
||||
# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
|
||||
#endif
|
||||
|
||||
#include <paths.h>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
#define UT_NAMESIZE 8
|
||||
#define UT_LINESIZE 8
|
||||
#define UT_HOSTSIZE 16
|
||||
|
||||
|
||||
struct lastlog
|
||||
{
|
||||
time_t ll_time;
|
||||
char ll_line[UT_LINESIZE];
|
||||
char ll_host[UT_HOSTSIZE];
|
||||
};
|
||||
|
||||
struct utmp
|
||||
{
|
||||
char ut_line[UT_LINESIZE];
|
||||
char ut_user[UT_NAMESIZE];
|
||||
#define ut_name ut_user
|
||||
char ut_host[UT_HOSTSIZE];
|
||||
long int ut_time;
|
||||
};
|
||||
|
||||
|
||||
#define _HAVE_UT_HOST 1 /* We have the ut_host field. */
|
||||
@@ -1,25 +0,0 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_UTSNAME_H
|
||||
# error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
|
||||
#endif
|
||||
|
||||
/* The size of the character arrays used to hold the information
|
||||
in a `struct utsname'. Enlarge this as necessary. */
|
||||
#define _UTSNAME_LENGTH 1024
|
||||
@@ -1,27 +0,0 @@
|
||||
/* Definitions of flag bits for `waitpid' et al.
|
||||
Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_WAIT_H
|
||||
# error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Bits in the third argument to `waitpid'. */
|
||||
#define WNOHANG 1 /* Don't block waiting. */
|
||||
#define WUNTRACED 2 /* Report status of stopped children. */
|
||||
@@ -1,104 +0,0 @@
|
||||
/* Definitions of status bits for `wait' et al.
|
||||
Copyright (C) 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _SYS_WAIT_H
|
||||
# error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Everything extant so far uses these same bits. */
|
||||
|
||||
|
||||
/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
|
||||
#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
|
||||
|
||||
/* If WIFSIGNALED(STATUS), the terminating signal. */
|
||||
#define __WTERMSIG(status) ((status) & 0x7f)
|
||||
|
||||
/* If WIFSTOPPED(STATUS), the signal that stopped the child. */
|
||||
#define __WSTOPSIG(status) __WEXITSTATUS(status)
|
||||
|
||||
/* Nonzero if STATUS indicates normal termination. */
|
||||
#define __WIFEXITED(status) (__WTERMSIG(status) == 0)
|
||||
|
||||
/* Nonzero if STATUS indicates termination by a signal. */
|
||||
#ifdef __GNUC__
|
||||
# define __WIFSIGNALED(status) \
|
||||
(__extension__ ({ int __status = (status); \
|
||||
!__WIFSTOPPED(__status) && !__WIFEXITED(__status); }))
|
||||
#else /* Not GCC. */
|
||||
# define __WIFSIGNALED(status) (!__WIFSTOPPED(status) && !__WIFEXITED(status))
|
||||
#endif /* GCC. */
|
||||
|
||||
/* Nonzero if STATUS indicates the child is stopped. */
|
||||
#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
|
||||
|
||||
/* Nonzero if STATUS indicates the child dumped core. */
|
||||
#define __WCOREDUMP(status) ((status) & __WCOREFLAG)
|
||||
|
||||
/* Macros for constructing status values. */
|
||||
#define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
|
||||
#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f)
|
||||
#define __WCOREFLAG 0x80
|
||||
|
||||
|
||||
#ifdef __USE_BSD
|
||||
|
||||
# include <endian.h>
|
||||
|
||||
union wait
|
||||
{
|
||||
int w_status;
|
||||
struct
|
||||
{
|
||||
# if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
unsigned int __w_termsig:7; /* Terminating signal. */
|
||||
unsigned int __w_coredump:1; /* Set if dumped core. */
|
||||
unsigned int __w_retcode:8; /* Return code if exited normally. */
|
||||
unsigned int:16;
|
||||
# endif /* Little endian. */
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
unsigned int:16;
|
||||
unsigned int __w_retcode:8;
|
||||
unsigned int __w_coredump:1;
|
||||
unsigned int __w_termsig:7;
|
||||
# endif /* Big endian. */
|
||||
} __wait_terminated;
|
||||
struct
|
||||
{
|
||||
# if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
unsigned int __w_stopval:8; /* W_STOPPED if stopped. */
|
||||
unsigned int __w_stopsig:8; /* Stopping signal. */
|
||||
unsigned int:16;
|
||||
# endif /* Little endian. */
|
||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
||||
unsigned int:16;
|
||||
unsigned int __w_stopsig:8; /* Stopping signal. */
|
||||
unsigned int __w_stopval:8; /* W_STOPPED if stopped. */
|
||||
# endif /* Big endian. */
|
||||
} __wait_stopped;
|
||||
};
|
||||
|
||||
# define w_termsig __wait_terminated.__w_termsig
|
||||
# define w_coredump __wait_terminated.__w_coredump
|
||||
# define w_retcode __wait_terminated.__w_retcode
|
||||
# define w_stopsig __wait_stopped.__w_stopsig
|
||||
# define w_stopval __wait_stopped.__w_stopval
|
||||
|
||||
#endif /* Use BSD. */
|
||||
@@ -1 +0,0 @@
|
||||
#error "This file must be written based on the data type sizes of the target"
|
||||
@@ -1179,9 +1179,9 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
|
||||
|
||||
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||||
|
||||
if test "$INSTALL" = "${srcdir}/install-sh -c"; then
|
||||
if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
|
||||
# The makefiles need to use a different form to find it in $srcdir.
|
||||
INSTALL='\$(..)./install-sh -c'
|
||||
INSTALL='\$(..)./scripts/install-sh -c'
|
||||
fi
|
||||
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
|
||||
echo "configure:1188: checking whether ln -s works" >&5
|
||||
@@ -1273,7 +1273,7 @@ echo "configure:1273: checking version of $CC" >&5
|
||||
ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustp-]*[0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9])
|
||||
egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9])
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
|
||||
@@ -1459,9 +1459,13 @@ test -n "$aux_missing" && echo "configure: warning:
|
||||
*** some features will be disabled.
|
||||
*** Check the INSTALL file for required versions." 1>&2
|
||||
|
||||
# glibcbug.in wants to know the compiler version.
|
||||
CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
|
||||
|
||||
|
||||
|
||||
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
|
||||
echo "configure:1465: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
|
||||
echo "configure:1469: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_cc_works'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1475,12 +1479,12 @@ cross_compiling=$ac_cv_prog_cc_cross
|
||||
|
||||
cat > conftest.$ac_ext << EOF
|
||||
|
||||
#line 1479 "configure"
|
||||
#line 1483 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
main(){return(0);}
|
||||
EOF
|
||||
if { (eval echo configure:1484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:1488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
ac_cv_prog_cc_works=yes
|
||||
# If we can't run a trivial program, we are probably using a cross compiler.
|
||||
if (./conftest; exit) 2>/dev/null; then
|
||||
@@ -1511,7 +1515,7 @@ else
|
||||
cross_linkable=yes
|
||||
fi
|
||||
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
|
||||
echo "configure:1515: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
|
||||
echo "configure:1519: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_cc_cross'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1523,7 +1527,7 @@ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
|
||||
cross_compiling=$ac_cv_prog_cc_cross
|
||||
|
||||
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
|
||||
echo "configure:1527: checking whether we are using GNU C" >&5
|
||||
echo "configure:1531: checking whether we are using GNU C" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1532,7 +1536,7 @@ else
|
||||
yes;
|
||||
#endif
|
||||
EOF
|
||||
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1536: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
||||
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
||||
ac_cv_prog_gcc=yes
|
||||
else
|
||||
ac_cv_prog_gcc=no
|
||||
@@ -1545,7 +1549,7 @@ if test $ac_cv_prog_gcc != yes; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking build system type""... $ac_c" 1>&6
|
||||
echo "configure:1549: checking build system type" >&5
|
||||
echo "configure:1553: checking build system type" >&5
|
||||
|
||||
build_alias=$build
|
||||
case "$build_alias" in
|
||||
@@ -1568,7 +1572,7 @@ do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1572: checking for $ac_word" >&5
|
||||
echo "configure:1576: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1600,7 +1604,7 @@ done
|
||||
fi
|
||||
|
||||
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
|
||||
echo "configure:1604: checking how to run the C preprocessor" >&5
|
||||
echo "configure:1608: checking how to run the C preprocessor" >&5
|
||||
# On Suns, sometimes $CPP names a directory.
|
||||
if test -n "$CPP" && test -d "$CPP"; then
|
||||
CPP=
|
||||
@@ -1615,13 +1619,13 @@ else
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp.
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1619 "configure"
|
||||
#line 1623 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <assert.h>
|
||||
Syntax Error
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:1625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:1629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
:
|
||||
@@ -1632,13 +1636,13 @@ else
|
||||
rm -rf conftest*
|
||||
CPP="${CC-cc} -E -traditional-cpp"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1636 "configure"
|
||||
#line 1640 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <assert.h>
|
||||
Syntax Error
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:1642: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:1646: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
:
|
||||
@@ -1649,13 +1653,13 @@ else
|
||||
rm -rf conftest*
|
||||
CPP="${CC-cc} -nologo -E"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1653 "configure"
|
||||
#line 1657 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <assert.h>
|
||||
Syntax Error
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:1659: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:1663: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
:
|
||||
@@ -1698,7 +1702,7 @@ if test $RANLIB = ranlib; then
|
||||
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
|
||||
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1702: checking for $ac_word" >&5
|
||||
echo "configure:1706: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1730,7 +1734,7 @@ if test -n "$ac_tool_prefix"; then
|
||||
# Extract the first word of "ranlib", so it can be a program name with args.
|
||||
set dummy ranlib; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1734: checking for $ac_word" >&5
|
||||
echo "configure:1738: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1767,7 +1771,7 @@ fi
|
||||
|
||||
# Determine whether we are using GNU binutils.
|
||||
echo $ac_n "checking whether $AS is GNU as""... $ac_c" 1>&6
|
||||
echo "configure:1771: checking whether $AS is GNU as" >&5
|
||||
echo "configure:1775: checking whether $AS is GNU as" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_prog_as_gnu'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1786,7 +1790,7 @@ rm -f a.out
|
||||
gnu_as=$libc_cv_prog_as_gnu
|
||||
|
||||
echo $ac_n "checking whether $LD is GNU ld""... $ac_c" 1>&6
|
||||
echo "configure:1790: checking whether $LD is GNU ld" >&5
|
||||
echo "configure:1794: checking whether $LD is GNU ld" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_prog_ld_gnu'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1806,7 +1810,7 @@ gnu_ld=$libc_cv_prog_ld_gnu
|
||||
# Extract the first word of "${ac_tool_prefix}mig", so it can be a program name with args.
|
||||
set dummy ${ac_tool_prefix}mig; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1810: checking for $ac_word" >&5
|
||||
echo "configure:1814: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_MIG'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1847,7 +1851,7 @@ fi
|
||||
|
||||
# check if ranlib is necessary
|
||||
echo $ac_n "checking whether ranlib is necessary""... $ac_c" 1>&6
|
||||
echo "configure:1851: checking whether ranlib is necessary" >&5
|
||||
echo "configure:1855: checking whether ranlib is necessary" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_ranlib_necessary'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1881,7 +1885,7 @@ fi
|
||||
# - two terminals occur directly after each other
|
||||
# - the path contains an element with a dot in it
|
||||
echo $ac_n "checking LD_LIBRARY_PATH variable""... $ac_c" 1>&6
|
||||
echo "configure:1885: checking LD_LIBRARY_PATH variable" >&5
|
||||
echo "configure:1889: checking LD_LIBRARY_PATH variable" >&5
|
||||
case ${LD_LIBRARY_PATH} in
|
||||
[:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
|
||||
ld_library_path_setting="contains current directory"
|
||||
@@ -1901,7 +1905,7 @@ fi
|
||||
# Extract the first word of "bash", so it can be a program name with args.
|
||||
set dummy bash; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1905: checking for $ac_word" >&5
|
||||
echo "configure:1909: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1947,7 +1951,7 @@ if test "$BASH" = no; then
|
||||
# Extract the first word of "ksh", so it can be a program name with args.
|
||||
set dummy ksh; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1951: checking for $ac_word" >&5
|
||||
echo "configure:1955: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -1997,7 +2001,7 @@ do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:2001: checking for $ac_word" >&5
|
||||
echo "configure:2005: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2029,7 +2033,7 @@ done
|
||||
# Extract the first word of "perl", so it can be a program name with args.
|
||||
set dummy perl; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:2033: checking for $ac_word" >&5
|
||||
echo "configure:2037: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2066,7 +2070,7 @@ fi
|
||||
# Extract the first word of "install-info", so it can be a program name with args.
|
||||
set dummy install-info; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:2070: checking for $ac_word" >&5
|
||||
echo "configure:2074: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_INSTALL_INFO'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2102,7 +2106,7 @@ fi
|
||||
|
||||
if test "$INSTALL_INFO" != "no"; then
|
||||
echo $ac_n "checking for old Debian install-info""... $ac_c" 1>&6
|
||||
echo "configure:2106: checking for old Debian install-info" >&5
|
||||
echo "configure:2110: checking for old Debian install-info" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_old_debian_install_info'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2135,7 +2139,7 @@ fi
|
||||
|
||||
|
||||
echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
|
||||
echo "configure:2139: checking for signed size_t type" >&5
|
||||
echo "configure:2143: checking for signed size_t type" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2159,12 +2163,12 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6
|
||||
echo "configure:2163: checking for libc-friendly stddef.h" >&5
|
||||
echo "configure:2167: checking for libc-friendly stddef.h" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 2168 "configure"
|
||||
#line 2172 "configure"
|
||||
#include "confdefs.h"
|
||||
#define __need_size_t
|
||||
#define __need_wchar_t
|
||||
@@ -2179,7 +2183,7 @@ size_t size; wchar_t wchar;
|
||||
if (&size == NULL || &wchar == NULL) abort ();
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:2183: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:2187: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
libc_cv_friendly_stddef=yes
|
||||
else
|
||||
@@ -2198,7 +2202,7 @@ override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
|
||||
fi
|
||||
|
||||
echo $ac_n "checking whether we need to use -P to assemble .S files""... $ac_c" 1>&6
|
||||
echo "configure:2202: checking whether we need to use -P to assemble .S files" >&5
|
||||
echo "configure:2206: checking whether we need to use -P to assemble .S files" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_need_minus_P'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2221,7 +2225,7 @@ asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6
|
||||
echo "configure:2225: checking for assembler global-symbol directive" >&5
|
||||
echo "configure:2229: checking for assembler global-symbol directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_global_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2251,7 +2255,7 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6
|
||||
echo "configure:2255: checking for .set assembler directive" >&5
|
||||
echo "configure:2259: checking for .set assembler directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_set_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2285,7 +2289,7 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6
|
||||
echo "configure:2289: checking for .symver assembler directive" >&5
|
||||
echo "configure:2293: checking for .symver assembler directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_symver_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2304,7 +2308,7 @@ fi
|
||||
|
||||
echo "$ac_t""$libc_cv_asm_symver_directive" 1>&6
|
||||
echo $ac_n "checking for ld --version-script""... $ac_c" 1>&6
|
||||
echo "configure:2308: checking for ld --version-script" >&5
|
||||
echo "configure:2312: checking for ld --version-script" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_ld_version_script_option'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2327,7 +2331,7 @@ EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
|
||||
-nostartfiles -nostdlib
|
||||
-Wl,--version-script,conftest.map
|
||||
1>&5'; { (eval echo configure:2331: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
|
||||
1>&5'; { (eval echo configure:2335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
|
||||
then
|
||||
libc_cv_ld_version_script_option=yes
|
||||
else
|
||||
@@ -2365,7 +2369,7 @@ if test $VERSIONING = no; then
|
||||
fi
|
||||
if test $elf = yes; then
|
||||
echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6
|
||||
echo "configure:2369: checking for .previous assembler directive" >&5
|
||||
echo "configure:2373: checking for .previous assembler directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_previous_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2373,7 +2377,7 @@ else
|
||||
.section foo_section
|
||||
.previous
|
||||
EOF
|
||||
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2381: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_asm_previous_directive=yes
|
||||
else
|
||||
libc_cv_asm_previous_directive=no
|
||||
@@ -2389,7 +2393,7 @@ EOF
|
||||
|
||||
else
|
||||
echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6
|
||||
echo "configure:2393: checking for .popsection assembler directive" >&5
|
||||
echo "configure:2397: checking for .popsection assembler directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_popsection_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2397,7 +2401,7 @@ else
|
||||
.pushsection foo_section
|
||||
.popsection
|
||||
EOF
|
||||
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_asm_popsection_directive=yes
|
||||
else
|
||||
libc_cv_asm_popsection_directive=no
|
||||
@@ -2417,12 +2421,12 @@ fi
|
||||
|
||||
if test $elf != yes; then
|
||||
echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
|
||||
echo "configure:2421: checking for .init and .fini sections" >&5
|
||||
echo "configure:2425: checking for .init and .fini sections" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 2426 "configure"
|
||||
#line 2430 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
@@ -2431,7 +2435,7 @@ asm (".section .init");
|
||||
asm (".text");
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:2435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:2439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
libc_cv_have_initfini=yes
|
||||
else
|
||||
@@ -2459,19 +2463,19 @@ if test $elf = yes; then
|
||||
else
|
||||
if test $ac_cv_prog_cc_works = yes; then
|
||||
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
|
||||
echo "configure:2463: checking for _ prefix on C symbol names" >&5
|
||||
echo "configure:2467: checking for _ prefix on C symbol names" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 2468 "configure"
|
||||
#line 2472 "configure"
|
||||
#include "confdefs.h"
|
||||
asm ("_glibc_foobar:");
|
||||
int main() {
|
||||
glibc_foobar ();
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:2475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:2479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
libc_cv_asm_underscores=yes
|
||||
else
|
||||
@@ -2486,17 +2490,17 @@ fi
|
||||
echo "$ac_t""$libc_cv_asm_underscores" 1>&6
|
||||
else
|
||||
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
|
||||
echo "configure:2490: checking for _ prefix on C symbol names" >&5
|
||||
echo "configure:2494: checking for _ prefix on C symbol names" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 2495 "configure"
|
||||
#line 2499 "configure"
|
||||
#include "confdefs.h"
|
||||
void underscore_test(void) {
|
||||
return; }
|
||||
EOF
|
||||
if { (eval echo configure:2500: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:2504: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if grep _underscore_test conftest* >/dev/null; then
|
||||
rm -f conftest*
|
||||
libc_cv_asm_underscores=yes
|
||||
@@ -2528,7 +2532,7 @@ if test $elf = yes; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
|
||||
echo "configure:2532: checking for assembler .weak directive" >&5
|
||||
echo "configure:2536: checking for assembler .weak directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2551,7 +2555,7 @@ echo "$ac_t""$libc_cv_asm_weak_directive" 1>&6
|
||||
|
||||
if test $libc_cv_asm_weak_directive = no; then
|
||||
echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6
|
||||
echo "configure:2555: checking for assembler .weakext directive" >&5
|
||||
echo "configure:2559: checking for assembler .weakext directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2589,7 +2593,7 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
|
||||
echo "configure:2593: checking for ld --no-whole-archive" >&5
|
||||
echo "configure:2597: checking for ld --no-whole-archive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2600,7 +2604,7 @@ __throw () {}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS
|
||||
-nostdlib -nostartfiles -Wl,--no-whole-archive
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_ld_no_whole_archive=yes
|
||||
else
|
||||
libc_cv_ld_no_whole_archive=no
|
||||
@@ -2614,7 +2618,7 @@ if test $libc_cv_ld_no_whole_archive = yes; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for gcc -fexceptions""... $ac_c" 1>&6
|
||||
echo "configure:2618: checking for gcc -fexceptions" >&5
|
||||
echo "configure:2622: checking for gcc -fexceptions" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_exceptions'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2625,7 +2629,7 @@ __throw () {}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS
|
||||
-nostdlib -nostartfiles -fexceptions
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2633: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_gcc_exceptions=yes
|
||||
else
|
||||
libc_cv_gcc_exceptions=no
|
||||
@@ -2640,14 +2644,14 @@ fi
|
||||
|
||||
if test "$base_machine" = alpha ; then
|
||||
echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6
|
||||
echo "configure:2644: checking for function ..ng prefix" >&5
|
||||
echo "configure:2648: checking for function ..ng prefix" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.c <<\EOF
|
||||
foo () { }
|
||||
EOF
|
||||
if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2651: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
|
||||
if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
|
||||
then
|
||||
libc_cv_gcc_alpha_ng_prefix=yes
|
||||
else
|
||||
@@ -2674,19 +2678,19 @@ if test "$host_cpu" = powerpc ; then
|
||||
# Check for a bug present in at least versions 2.8.x of GCC
|
||||
# and versions 1.0.x of EGCS.
|
||||
echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6
|
||||
echo "configure:2678: checking whether clobbering cr0 causes problems" >&5
|
||||
echo "configure:2682: checking whether clobbering cr0 causes problems" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 2683 "configure"
|
||||
#line 2687 "configure"
|
||||
#include "confdefs.h"
|
||||
int tester(int x) { asm ("" : : : "cc"); return x & 123; }
|
||||
int main() {
|
||||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:2690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:2694: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
libc_cv_c_asmcr0_bug='no'
|
||||
else
|
||||
@@ -2708,12 +2712,12 @@ fi
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6
|
||||
echo "configure:2712: checking for DWARF2 unwind info support" >&5
|
||||
echo "configure:2716: checking for DWARF2 unwind info support" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.c <<EOF
|
||||
#line 2717 "configure"
|
||||
#line 2721 "configure"
|
||||
static char __EH_FRAME_BEGIN__;
|
||||
_start ()
|
||||
{
|
||||
@@ -2740,7 +2744,7 @@ __bzero () {}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info
|
||||
-nostdlib -nostartfiles
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2744: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2748: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_gcc_dwarf2_unwind_info=static
|
||||
else
|
||||
libc_cv_gcc_dwarf2_unwind_info=no
|
||||
@@ -2748,7 +2752,7 @@ fi
|
||||
if test $libc_cv_gcc_dwarf2_unwind_info = no; then
|
||||
if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame
|
||||
-nostdlib -nostartfiles
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2752: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2756: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_gcc_dwarf2_unwind_info=yes
|
||||
else
|
||||
libc_cv_gcc_dwarf2_unwind_info=no
|
||||
@@ -2778,12 +2782,12 @@ EOF
|
||||
esac
|
||||
|
||||
echo $ac_n "checking for __builtin_expect""... $ac_c" 1>&6
|
||||
echo "configure:2782: checking for __builtin_expect" >&5
|
||||
echo "configure:2786: checking for __builtin_expect" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_builtin_expect'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.c <<EOF
|
||||
#line 2787 "configure"
|
||||
#line 2791 "configure"
|
||||
int foo (int a)
|
||||
{
|
||||
a = __builtin_expect (a, 10);
|
||||
@@ -2791,7 +2795,7 @@ int foo (int a)
|
||||
}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2795: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_gcc_builtin_expect=yes
|
||||
else
|
||||
libc_cv_gcc_builtin_expect=no
|
||||
@@ -2852,7 +2856,7 @@ if test "$uname" = "sysdeps/generic"; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
|
||||
echo "configure:2856: checking OS release for uname" >&5
|
||||
echo "configure:2860: checking OS release for uname" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2874,7 +2878,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6
|
||||
uname_release="$libc_cv_uname_release"
|
||||
|
||||
echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
|
||||
echo "configure:2878: checking OS version for uname" >&5
|
||||
echo "configure:2882: checking OS version for uname" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -2896,7 +2900,7 @@ else
|
||||
fi
|
||||
|
||||
echo $ac_n "checking stdio selection""... $ac_c" 1>&6
|
||||
echo "configure:2900: checking stdio selection" >&5
|
||||
echo "configure:2904: checking stdio selection" >&5
|
||||
|
||||
case $stdio in
|
||||
libio) cat >> confdefs.h <<\EOF
|
||||
@@ -2910,7 +2914,7 @@ echo "$ac_t""$stdio" 1>&6
|
||||
# Test for old glibc 2.0.x headers so that they can be removed properly
|
||||
# Search only in includedir.
|
||||
echo $ac_n "checking for old glibc 2.0.x headers""... $ac_c" 1>&6
|
||||
echo "configure:2914: checking for old glibc 2.0.x headers" >&5
|
||||
echo "configure:2918: checking for old glibc 2.0.x headers" >&5
|
||||
if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
|
||||
then
|
||||
old_glibc_headers=yes
|
||||
@@ -2964,7 +2968,7 @@ if test $shared = default; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6
|
||||
echo "configure:2968: checking whether -fPIC is default" >&5
|
||||
echo "configure:2972: checking whether -fPIC is default" >&5
|
||||
if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@@ -3164,6 +3168,7 @@ s%@CC@%$CC%g
|
||||
s%@MAKE@%$MAKE%g
|
||||
s%@MSGFMT@%$MSGFMT%g
|
||||
s%@MAKEINFO@%$MAKEINFO%g
|
||||
s%@CCVERSION@%$CCVERSION%g
|
||||
s%@cross_linkable@%$cross_linkable%g
|
||||
s%@BUILD_CC@%$BUILD_CC%g
|
||||
s%@cross_compiling@%$cross_compiling%g
|
||||
|
||||
+7
-3
@@ -435,9 +435,9 @@ AC_MSG_RESULT($default_sysnames)
|
||||
### Locate tools.
|
||||
|
||||
AC_PROG_INSTALL
|
||||
if test "$INSTALL" = "${srcdir}/install-sh -c"; then
|
||||
if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
|
||||
# The makefiles need to use a different form to find it in $srcdir.
|
||||
INSTALL='\$(..)./install-sh -c'
|
||||
INSTALL='\$(..)./scripts/install-sh -c'
|
||||
fi
|
||||
AC_PROG_LN_S
|
||||
|
||||
@@ -445,7 +445,7 @@ AC_PROG_LN_S
|
||||
AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
|
||||
AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
|
||||
[version \([egcygnustp-]*[0-9.]*\)],
|
||||
[egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]],
|
||||
[egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]],
|
||||
critic_missing=t)
|
||||
AC_CHECK_PROG_VER(MAKE, make gmake, --version,
|
||||
[version \([0-9][0-9.]*\), by],
|
||||
@@ -469,6 +469,10 @@ test -n "$aux_missing" && AC_MSG_WARN([
|
||||
*** some features will be disabled.
|
||||
*** Check the INSTALL file for required versions.])
|
||||
|
||||
# glibcbug.in wants to know the compiler version.
|
||||
CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
|
||||
AC_SUBST(CCVERSION)
|
||||
|
||||
AC_PROG_CC_LOCAL
|
||||
AC_CANONICAL_BUILD
|
||||
if test $host != $build; then
|
||||
|
||||
+15
-14
@@ -165,20 +165,21 @@ toupper (int __c) __THROW
|
||||
|
||||
#if __GNUC__ >= 2 && defined __OPTIMIZE__ && !defined __cplusplus
|
||||
# define __tobody(c, f, a) \
|
||||
({ int __res; \
|
||||
if (sizeof (c) > 1) \
|
||||
{ \
|
||||
if (__builtin_constant_p (c)) \
|
||||
{ \
|
||||
int __c = (c); \
|
||||
__res = __c < -128 || __c > 255 ? __c : a[__c]; \
|
||||
} \
|
||||
else \
|
||||
__res = f (c); \
|
||||
} \
|
||||
else \
|
||||
__res = a[(int) (c)]; \
|
||||
__res; })
|
||||
(__extension__ \
|
||||
({ int __res; \
|
||||
if (sizeof (c) > 1) \
|
||||
{ \
|
||||
if (__builtin_constant_p (c)) \
|
||||
{ \
|
||||
int __c = (c); \
|
||||
__res = __c < -128 || __c > 255 ? __c : a[__c]; \
|
||||
} \
|
||||
else \
|
||||
__res = f (c); \
|
||||
} \
|
||||
else \
|
||||
__res = a[(int) (c)]; \
|
||||
__res; }))
|
||||
|
||||
# define tolower(c) __tobody (c, tolower, __ctype_tolower)
|
||||
# define toupper(c) __tobody (c, toupper, __ctype_toupper)
|
||||
|
||||
+2
-2
@@ -86,7 +86,7 @@ $(objpfx)db_load: $(objpfx)getlong.o
|
||||
|
||||
ifeq ($(build-shared),yes)
|
||||
$(objpfx)makedb: $(objpfx)libdb.so$(libdb.so-version)
|
||||
$(objpfx)db_dump185: $(objpfx)libdb.so$(libdb.so-version)
|
||||
$(objpfx)db_dump185: $(common-objpfx)db/libdb1.so$(libdb1.so-version)
|
||||
$(objpfx)db_archive: $(objpfx)libdb.so$(libdb.so-version)
|
||||
$(objpfx)db_checkpoint: $(objpfx)libdb.so$(libdb.so-version)
|
||||
$(objpfx)db_deadlock: $(objpfx)libdb.so$(libdb.so-version)
|
||||
@@ -97,7 +97,7 @@ $(objpfx)db_recover: $(objpfx)libdb.so$(libdb.so-version)
|
||||
$(objpfx)db_stat: $(objpfx)libdb.so$(libdb.so-version)
|
||||
else
|
||||
$(objpfx)makedb: $(objpfx)libdb.a
|
||||
$(objpfx)db_dump185: $(objpfx)libdb.a
|
||||
$(objpfx)db_dump185: $(common-objpfx)db/libdb1.a
|
||||
$(objpfx)db_archive: $(objpfx)libdb.a
|
||||
$(objpfx)db_checkpoint: $(objpfx)libdb.a
|
||||
$(objpfx)db_deadlock: $(objpfx)libdb.a
|
||||
|
||||
+11
-1
@@ -507,8 +507,18 @@ __db_rdetach(infop)
|
||||
* If the region was removed when it was created, no further action
|
||||
* is required.
|
||||
*/
|
||||
if (F_ISSET(infop, REGION_REMOVED))
|
||||
if (F_ISSET(infop, REGION_REMOVED)) {
|
||||
if (F_ISSET(infop, REGION_PRIVATE)
|
||||
&& !F_ISSET(infop, REGION_MALLOC))
|
||||
/*
|
||||
* If it is private and not malloced, the
|
||||
* region is still mapped in. We need to
|
||||
* discard our mapping of the region.
|
||||
*/
|
||||
ret = __db_unmapregion(infop);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the region was created in memory returned by malloc, the only
|
||||
* action required is freeing the memory.
|
||||
|
||||
+11
-6
@@ -33,16 +33,21 @@ __db_oflags(oflags)
|
||||
u_int32_t dbflags;
|
||||
|
||||
/*
|
||||
* XXX
|
||||
* Convert POSIX 1003.1 open(2) flags to DB flags. Not an exact
|
||||
* science as most POSIX implementations don't have a flag value
|
||||
* for O_RDONLY, it's simply the lack of a write flag.
|
||||
* Convert POSIX 1003.1 open(2) flags to DB flags.
|
||||
*/
|
||||
dbflags = 0;
|
||||
switch (oflags & O_ACCMODE) {
|
||||
case O_RDONLY:
|
||||
dbflags |= DB_RDONLY;
|
||||
break;
|
||||
case O_WRONLY:
|
||||
case O_RDWR:
|
||||
break;
|
||||
default: /* Bogus flags value from user. */
|
||||
/* XXX no way to return error from here */
|
||||
}
|
||||
if (oflags & O_CREAT)
|
||||
dbflags |= DB_CREATE;
|
||||
if (!(oflags & (O_RDWR | O_WRONLY)) || oflags & O_RDONLY)
|
||||
dbflags |= DB_RDONLY;
|
||||
if (oflags & O_TRUNC)
|
||||
dbflags |= DB_TRUNCATE;
|
||||
return (dbflags);
|
||||
|
||||
+20
-2
@@ -171,10 +171,10 @@ extern void rewinddir __P ((DIR *__dirp));
|
||||
# include <bits/types.h>
|
||||
|
||||
/* Seek to position POS on DIRP. */
|
||||
extern void seekdir __P ((DIR *__dirp, __off_t __pos));
|
||||
extern void seekdir __P ((DIR *__dirp, long int __pos));
|
||||
|
||||
/* Return the current position of DIRP. */
|
||||
extern __off_t telldir __P ((DIR *__dirp));
|
||||
extern long int telldir __P ((DIR *__dirp));
|
||||
#endif
|
||||
|
||||
#if defined __USE_BSD || defined __USE_MISC
|
||||
@@ -272,10 +272,28 @@ extern int versionsort64 __P ((__const __ptr_t __e1, __const __ptr_t __e2));
|
||||
Reading starts at offset *BASEP, and *BASEP is updated with the new
|
||||
position after reading. Returns the number of bytes read; zero when at
|
||||
end of directory; or -1 for errors. */
|
||||
|
||||
# ifndef __USE_FILE_OFFSET64
|
||||
extern __ssize_t getdirentries __P ((int __fd, char *__restrict __buf,
|
||||
size_t __nbytes,
|
||||
__off_t *__restrict __basep));
|
||||
# else
|
||||
# ifdef __REDIRECT
|
||||
extern __ssize_t __REDIRECT (getdirentries,
|
||||
__P ((int __fd, char *__restrict __buf,
|
||||
size_t __nbytes,
|
||||
__off_t *__restrict __basep)),
|
||||
getdirentries64);
|
||||
# else
|
||||
# define getdirentries getdirentries64
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifdef __USE_LARGEFILE64
|
||||
extern __ssize_t getdirentries64 __P ((int __fd, char *__restrict __buf,
|
||||
size_t __nbytes,
|
||||
__off64_t *__restrict __basep));
|
||||
# endif
|
||||
|
||||
#endif /* Use BSD or misc. */
|
||||
|
||||
|
||||
+10
-4
@@ -304,7 +304,10 @@ _dl_map_object_deps (struct link_map *map,
|
||||
/* Allocate new entry. This always has to be done. */
|
||||
newp = alloca (sizeof (struct list));
|
||||
|
||||
/* Copy the content of the current entry over. */
|
||||
/* We want to insert the new map before the current one,
|
||||
but we have no back links. So we copy the contents of
|
||||
the current entry over. Note that ORIG and NEWP now
|
||||
have switched their meanings. */
|
||||
orig->dup = memcpy (newp, orig, sizeof (*newp));
|
||||
|
||||
/* Initialize new entry. */
|
||||
@@ -333,7 +336,7 @@ _dl_map_object_deps (struct link_map *map,
|
||||
_dl_map_object. */
|
||||
--args.aux->l_opencount;
|
||||
|
||||
for (late = orig; late->unique; late = late->unique)
|
||||
for (late = newp; late->unique; late = late->unique)
|
||||
if (late->unique->map == args.aux)
|
||||
break;
|
||||
|
||||
@@ -344,10 +347,13 @@ _dl_map_object_deps (struct link_map *map,
|
||||
move it to this earlier position. */
|
||||
orig->unique = newp;
|
||||
|
||||
/* Now remove the later entry from the unique list. */
|
||||
/* Now remove the later entry from the unique list
|
||||
and adjust the tail pointer. */
|
||||
if (utail == late->unique)
|
||||
utail = late;
|
||||
late->unique = late->unique->unique;
|
||||
|
||||
/* We must move the earlier in the chain. */
|
||||
/* We must move the object earlier in the chain. */
|
||||
if (args.aux->l_prev)
|
||||
args.aux->l_prev->l_next = args.aux->l_next;
|
||||
if (args.aux->l_next)
|
||||
|
||||
+11
-6
@@ -513,7 +513,7 @@ _dl_init_paths (const char *llp)
|
||||
|
||||
/* First set up the rest of the default search directory entries. */
|
||||
aelem = rtld_search_dirs = (struct r_search_path_elem **)
|
||||
malloc ((sizeof (system_dirs_len) / sizeof (system_dirs_len[0]))
|
||||
malloc ((sizeof (system_dirs_len) / sizeof (system_dirs_len[0]) + 1)
|
||||
* sizeof (struct r_search_path_elem *));
|
||||
if (rtld_search_dirs == NULL)
|
||||
_dl_signal_error (ENOMEM, NULL, "cannot create search path array");
|
||||
@@ -655,6 +655,11 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
|
||||
/* This is the expected ELF header. */
|
||||
#define ELF32_CLASS ELFCLASS32
|
||||
#define ELF64_CLASS ELFCLASS64
|
||||
#if !defined VALID_ELF_HEADER
|
||||
# define VALID_ELF_HEADER(hdr,exp,size) (memcmp(hdr,exp,size) == 0)
|
||||
# define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV)
|
||||
# define VALID_ELF_ABIVERSION(ver) (ver == 0)
|
||||
#endif
|
||||
static const unsigned char expected[EI_PAD] =
|
||||
{
|
||||
[EI_MAG0] = ELFMAG0,
|
||||
@@ -721,7 +726,7 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
|
||||
header = (void *) readbuf;
|
||||
|
||||
/* Check the header for basic validity. */
|
||||
if (memcmp (header->e_ident, expected, EI_PAD) != 0)
|
||||
if (!VALID_ELF_HEADER(header->e_ident, expected, EI_PAD))
|
||||
{
|
||||
/* Something is wrong. */
|
||||
if (*(Elf32_Word *) &header->e_ident !=
|
||||
@@ -746,10 +751,10 @@ _dl_map_object_from_fd (const char *name, int fd, char *realname,
|
||||
LOSE (0, "ELF file version ident not " STRING(EV_CURRENT));
|
||||
/* XXX We should be able so set system specific versions which are
|
||||
allowed here. */
|
||||
if (header->e_ident[EI_OSABI] != ELFOSABI_SYSV)
|
||||
LOSE (0, "ELF file OS ABI not " STRING(ELFOSABI_SYSV));
|
||||
if (header->e_ident[EI_ABIVERSION] != 0)
|
||||
LOSE (0, "ELF file ABI version not 0");
|
||||
if (!VALID_ELF_OSABI(header->e_ident[EI_OSABI]))
|
||||
LOSE (0, "ELF file OS ABI invalid.");
|
||||
if (!VALID_ELF_ABIVERSION(header->e_ident[EI_ABIVERSION]))
|
||||
LOSE (0, "ELF file ABI version invalid.");
|
||||
LOSE (0, "internal error");
|
||||
}
|
||||
|
||||
|
||||
@@ -57,6 +57,12 @@ fixup (
|
||||
void *const rel_addr = (void *)(l->l_addr + reloc->r_offset);
|
||||
ElfW(Addr) value;
|
||||
|
||||
/* The use of `alloca' here looks ridiculous but it helps. The goal is
|
||||
to prevent the function from being inlined and thus optimized out.
|
||||
There is no official way to do this so we use this trick. gcc never
|
||||
inlines functions which use `alloca'. */
|
||||
alloca (sizeof (int));
|
||||
|
||||
/* Sanity check that we're really looking at a PLT relocation. */
|
||||
assert (ELFW(R_TYPE)(reloc->r_info) == ELF_MACHINE_JMP_SLOT);
|
||||
|
||||
@@ -110,6 +116,12 @@ profile_fixup (
|
||||
ElfW(Addr) *resultp;
|
||||
ElfW(Addr) value;
|
||||
|
||||
/* The use of `alloca' here looks ridiculous but it helps. The goal is
|
||||
to prevent the function from being inlined, and thus optimized out.
|
||||
There is no official way to do this so we use this trick. gcc never
|
||||
inlines functions which use `alloca'. */
|
||||
alloca (sizeof (int));
|
||||
|
||||
/* This is the address in the array where we store the result of previous
|
||||
relocations. */
|
||||
resultp = &l->l_reloc_result[reloc_offset / sizeof (PLTREL)];
|
||||
|
||||
+26
-20
@@ -29,6 +29,7 @@
|
||||
struct dl_action_result
|
||||
{
|
||||
int errcode;
|
||||
int returned;
|
||||
char *errstring;
|
||||
};
|
||||
static struct dl_action_result last_result;
|
||||
@@ -46,38 +47,40 @@ static void free_key_mem (void *mem);
|
||||
char *
|
||||
dlerror (void)
|
||||
{
|
||||
static char *buf;
|
||||
char *buf;
|
||||
struct dl_action_result *result;
|
||||
|
||||
if (buf)
|
||||
{
|
||||
free (buf);
|
||||
buf = NULL;
|
||||
}
|
||||
|
||||
/* Get error string. */
|
||||
result = (struct dl_action_result *) __libc_getspecific (key);
|
||||
if (result == NULL)
|
||||
result = &last_result;
|
||||
|
||||
if (! result->errstring)
|
||||
return NULL;
|
||||
|
||||
if (result->errcode == 0)
|
||||
buf = result->errstring;
|
||||
if (result->returned != 0)
|
||||
{
|
||||
/* We can now free the string. */
|
||||
if (result->errstring != NULL)
|
||||
{
|
||||
free (result->errstring);
|
||||
result->errstring = NULL;
|
||||
}
|
||||
buf = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (__asprintf (&buf, "%s: %s",
|
||||
result->errstring, strerror (result->errcode)) == -1)
|
||||
buf = NULL;
|
||||
buf = result->errstring;
|
||||
if (result->errcode != 0
|
||||
&& __asprintf (&buf, "%s: %s",
|
||||
result->errstring, strerror (result->errcode)) != -1)
|
||||
{
|
||||
/* We don't need the error string anymore. */
|
||||
free (result->errstring);
|
||||
result->errstring = buf;
|
||||
}
|
||||
|
||||
/* We don't need the error string anymore. */
|
||||
free (result->errstring);
|
||||
/* Mark the error as returned. */
|
||||
result->returned = 1;
|
||||
}
|
||||
|
||||
/* Reset the error indicator. */
|
||||
result->errstring = NULL;
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
@@ -121,6 +124,9 @@ _dlerror_run (void (*operate) (void *), void *args)
|
||||
|
||||
result->errcode = _dl_catch_error (&result->errstring, operate, args);
|
||||
|
||||
/* If no error we mark that no error string is available. */
|
||||
result->returned = result->errstring == NULL;
|
||||
|
||||
return result->errstring != NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -140,6 +140,7 @@ typedef struct
|
||||
#define EI_OSABI 7 /* OS ABI identification */
|
||||
#define ELFOSABI_SYSV 0 /* UNIX System V ABI */
|
||||
#define ELFOSABI_HPUX 1 /* HP-UX */
|
||||
#define ELFOSABI_ARM 97 /* ARM */
|
||||
#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
|
||||
|
||||
#define EI_ABIVERSION 8 /* ABI version */
|
||||
|
||||
+45
-10
@@ -129,6 +129,9 @@ static hp_timing_t relocate_time;
|
||||
static hp_timing_t load_time;
|
||||
extern unsigned long int _dl_num_relocations; /* in dl-lookup.c */
|
||||
|
||||
static ElfW(Addr) _dl_start_final (void *arg, struct link_map *bootstrap_map_p,
|
||||
hp_timing_t start_time);
|
||||
|
||||
#ifdef RTLD_START
|
||||
RTLD_START
|
||||
#else
|
||||
@@ -140,7 +143,7 @@ _dl_start (void *arg)
|
||||
{
|
||||
struct link_map bootstrap_map;
|
||||
hp_timing_t start_time;
|
||||
ElfW(Addr) start_addr;
|
||||
size_t cnt;
|
||||
|
||||
/* This #define produces dynamic linking inline functions for
|
||||
bootstrap relocation instead of general-purpose relocation. */
|
||||
@@ -152,6 +155,14 @@ _dl_start (void *arg)
|
||||
if (HP_TIMING_INLINE && HP_TIMING_AVAIL)
|
||||
HP_TIMING_NOW (start_time);
|
||||
|
||||
/* Partly clean the `bootstrap_map' structure up. Don't use `memset'
|
||||
since it might nor be built in or inlined and we cannot make function
|
||||
calls at this point. */
|
||||
for (cnt = 0;
|
||||
cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]);
|
||||
++cnt)
|
||||
bootstrap_map.l_info[cnt] = 0;
|
||||
|
||||
/* Figure out the run-time load address of the dynamic linker itself. */
|
||||
bootstrap_map.l_addr = elf_machine_load_address ();
|
||||
|
||||
@@ -175,7 +186,22 @@ _dl_start (void *arg)
|
||||
/* Now life is sane; we can call functions and access global data.
|
||||
Set up to use the operating system facilities, and find out from
|
||||
the operating system's program loader where to find the program
|
||||
header table in core. */
|
||||
header table in core. Put the rest of _dl_start into a separate
|
||||
function, that way the compiler cannot put accesses to the GOT
|
||||
before ELF_DYNAMIC_RELOCATE. */
|
||||
return _dl_start_final (arg, &bootstrap_map, start_time);
|
||||
}
|
||||
|
||||
|
||||
static ElfW(Addr)
|
||||
_dl_start_final (void *arg, struct link_map *bootstrap_map_p,
|
||||
hp_timing_t start_time)
|
||||
{
|
||||
/* The use of `alloca' here looks ridiculous but it helps. The goal
|
||||
is to avoid the function from being inlined. There is no official
|
||||
way to do this so we use this trick. gcc never inlines functions
|
||||
which use `alloca'. */
|
||||
ElfW(Addr) *start_addr = alloca (sizeof (ElfW(Addr)));
|
||||
|
||||
if (HP_TIMING_AVAIL)
|
||||
{
|
||||
@@ -188,10 +214,10 @@ _dl_start (void *arg)
|
||||
}
|
||||
|
||||
/* Transfer data about ourselves to the permanent link_map structure. */
|
||||
_dl_rtld_map.l_addr = bootstrap_map.l_addr;
|
||||
_dl_rtld_map.l_ld = bootstrap_map.l_ld;
|
||||
_dl_rtld_map.l_addr = bootstrap_map_p->l_addr;
|
||||
_dl_rtld_map.l_ld = bootstrap_map_p->l_ld;
|
||||
_dl_rtld_map.l_opencount = 1;
|
||||
memcpy (_dl_rtld_map.l_info, bootstrap_map.l_info,
|
||||
memcpy (_dl_rtld_map.l_info, bootstrap_map_p->l_info,
|
||||
sizeof _dl_rtld_map.l_info);
|
||||
_dl_setup_hash (&_dl_rtld_map);
|
||||
|
||||
@@ -203,7 +229,7 @@ _dl_start (void *arg)
|
||||
file access. It will call `dl_main' (below) to do all the real work
|
||||
of the dynamic linker, and then unwind our frame and run the user
|
||||
entry point on the same stack we entered on. */
|
||||
start_addr = _dl_sysdep_start (arg, &dl_main);
|
||||
*start_addr = _dl_sysdep_start (arg, &dl_main);
|
||||
|
||||
if (HP_TIMING_AVAIL)
|
||||
{
|
||||
@@ -219,7 +245,7 @@ _dl_start (void *arg)
|
||||
if (_dl_debug_statistics)
|
||||
print_statistics ();
|
||||
|
||||
return start_addr;
|
||||
return *start_addr;
|
||||
}
|
||||
|
||||
/* Now life is peachy; we can do all normal operations.
|
||||
@@ -781,9 +807,18 @@ of this helper program; chances are you did not intend to run this program.\n\
|
||||
while (_dl_loaded->l_searchlist.r_list[i] != &_dl_rtld_map)
|
||||
++i;
|
||||
_dl_rtld_map.l_prev = _dl_loaded->l_searchlist.r_list[i - 1];
|
||||
_dl_rtld_map.l_next = (i + 1 < _dl_loaded->l_searchlist.r_nlist
|
||||
? _dl_loaded->l_searchlist.r_list[i + 1]
|
||||
: NULL);
|
||||
if (__builtin_expect (mode, normal) == normal)
|
||||
_dl_rtld_map.l_next = (i + 1 < _dl_loaded->l_searchlist.r_nlist
|
||||
? _dl_loaded->l_searchlist.r_list[i + 1]
|
||||
: NULL);
|
||||
else
|
||||
/* In trace mode there might be an invisible object (which we
|
||||
could not find) after the previous one in the search list.
|
||||
In this case it doesn't matter much where we put the
|
||||
interpreter object, so we just initialize the list pointer so
|
||||
that the assertion below holds. */
|
||||
_dl_rtld_map.l_next = _dl_rtld_map.l_prev->l_next;
|
||||
|
||||
assert (_dl_rtld_map.l_prev->l_next == _dl_rtld_map.l_next);
|
||||
_dl_rtld_map.l_prev->l_next = &_dl_rtld_map;
|
||||
if (_dl_rtld_map.l_next)
|
||||
|
||||
+1
-1
@@ -10,6 +10,7 @@ RELEASE="@RELEASE@"
|
||||
ADDONS="@subdirs@"
|
||||
HOST="@host@"
|
||||
CC='@CC@'
|
||||
CCVERSION='@CCVERSION@'
|
||||
CFLAGS="@CFLAGS@"
|
||||
SYSINCLUDES="@SYSINCLUDES@"
|
||||
VERSIONING="@VERSIONING@"
|
||||
@@ -109,7 +110,6 @@ SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \
|
||||
( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""`
|
||||
ARCH=`[ -f /bin/arch ] && /bin/arch`
|
||||
MACHINE=`[ -f /bin/machine ] && /bin/machine`
|
||||
CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
|
||||
|
||||
case $HOST in *linux*)
|
||||
KHDRS=`(echo '#include <linux/version.h>'
|
||||
|
||||
@@ -20,4 +20,8 @@ libc {
|
||||
# p*
|
||||
putgrent;
|
||||
}
|
||||
GLIBC_2.1.2 {
|
||||
# g*
|
||||
getgrent_r; getgrgid_r; getgrnam_r;
|
||||
}
|
||||
}
|
||||
|
||||
+26
-2
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 1996, 1997, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -19,22 +19,28 @@
|
||||
#include <errno.h>
|
||||
#include <grp.h>
|
||||
#include <bits/libc-lock.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
/* We need to protect the dynamic buffer handling. */
|
||||
__libc_lock_define_initialized (static, lock);
|
||||
|
||||
static char *buffer;
|
||||
|
||||
/* Read one entry from the given stream. */
|
||||
struct group *
|
||||
fgetgrent (FILE *stream)
|
||||
{
|
||||
static char *buffer;
|
||||
static size_t buffer_size;
|
||||
static struct group resbuf;
|
||||
fpos_t pos;
|
||||
struct group *result;
|
||||
int save;
|
||||
|
||||
if (fgetpos (stream, &pos) != 0)
|
||||
return NULL;
|
||||
|
||||
/* Get lock. */
|
||||
__libc_lock_lock (lock);
|
||||
|
||||
@@ -61,6 +67,13 @@ fgetgrent (FILE *stream)
|
||||
__set_errno (save);
|
||||
}
|
||||
buffer = new_buf;
|
||||
|
||||
/* Reset the stream. */
|
||||
if (fsetpos (stream, &pos) != 0)
|
||||
{
|
||||
buffer = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (buffer == NULL)
|
||||
@@ -73,3 +86,14 @@ fgetgrent (FILE *stream)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/* Free all resources if necessary. */
|
||||
static void __attribute__ ((unused))
|
||||
free_mem (void)
|
||||
{
|
||||
if (buffer != NULL)
|
||||
free (buffer);
|
||||
}
|
||||
|
||||
text_set_element (__libc_subfreeres, free_mem);
|
||||
|
||||
+4
-2
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -74,13 +74,15 @@ __fgetgrent_r (FILE *stream, struct group *resbuf, char *buffer, size_t buflen,
|
||||
{
|
||||
funlockfile (stream);
|
||||
*result = NULL;
|
||||
__set_errno (ENOENT);
|
||||
return errno;
|
||||
}
|
||||
if (p == NULL || buffer[buflen - 1] != '\xff')
|
||||
{
|
||||
funlockfile (stream);
|
||||
*result = NULL;
|
||||
return errno = ERANGE;
|
||||
__set_errno (ERANGE);
|
||||
return errno;
|
||||
}
|
||||
|
||||
/* Skip leading blanks. */
|
||||
|
||||
+14
-1
@@ -28,6 +28,9 @@ headers = hurd.h $(interface-headers) \
|
||||
$(addprefix hurd/,fd.h id.h port.h signal.h sigpreempt.h ioctl.h\
|
||||
userlink.h resource.h threadvar.h lookup.h)
|
||||
|
||||
inline-headers = hurd.h $(addprefix hurd/,fd.h signal.h \
|
||||
userlink.h threadvar.h port.h)
|
||||
|
||||
# The RPC interfaces go in a separate library.
|
||||
interface-library := libhurduser
|
||||
user-interfaces := $(addprefix hurd/,\
|
||||
@@ -54,13 +57,14 @@ routines = hurdstartup hurdinit \
|
||||
fopenport \
|
||||
vpprintf \
|
||||
ports-get ports-set hurdports hurdmsg \
|
||||
$(sig) $(dtable) hurdinline port-cleanup report-wait
|
||||
$(sig) $(dtable) $(inlines) port-cleanup report-wait
|
||||
sig = hurdsig hurdfault siginfo hurd-raise preempt-sig \
|
||||
trampoline longjmp-ts catch-exc exc2signal hurdkill sigunwind \
|
||||
thread-self thread-cancel intr-msg catch-signal
|
||||
dtable = dtable port2fd new-fd alloc-fd intern-fd \
|
||||
getdport openport \
|
||||
fd-close fd-read fd-write hurdioctl ctty-input ctty-output
|
||||
inlines = $(inline-headers:%.h=%-inlines)
|
||||
distribute = hurdstartup.h hurdfault.h hurdhost.h \
|
||||
faultexc.defs intr-rpc.defs intr-rpc.h intr-msg.h Notes
|
||||
|
||||
@@ -74,6 +78,15 @@ routines += compat-20
|
||||
endif
|
||||
|
||||
shared-only-routines = compat-20
|
||||
|
||||
# For each of the $(inline-headers), generate a trivial source
|
||||
# file that will #include it to define its inline functions as real functions.
|
||||
$(inlines:%=$(objpfx)%.c): $(objpfx)%-inlines.c: %.h
|
||||
(h="`echo $(subst /,_,$*) | tr '[a-z]' '[A-Z]'`"; \
|
||||
echo "#define _$${h}_H_EXTERN_INLINE /* Define real function. */"; \
|
||||
echo '#include "$<"') > $@-new
|
||||
mv -f $@-new $@
|
||||
generated += $(inlines:=.c)
|
||||
|
||||
include ../mach/Machrules
|
||||
include ../Rules
|
||||
|
||||
+5
-1
@@ -43,7 +43,11 @@
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
_EXTERN_INLINE int
|
||||
#ifndef _HURD_H_EXTERN_INLINE
|
||||
#define _HURD_H_EXTERN_INLINE extern __inline
|
||||
#endif
|
||||
|
||||
_HURD_H_EXTERN_INLINE int
|
||||
__hurd_fail (error_t err)
|
||||
{
|
||||
switch (err)
|
||||
|
||||
+7
-7
@@ -1,5 +1,5 @@
|
||||
/* File descriptors.
|
||||
Copyright (C) 1993,94,95,96,97,98 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993,94,95,96,97,98, 99 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -49,15 +49,15 @@ extern struct mutex _hurd_dtable_lock; /* Locks those two variables. */
|
||||
#include <hurd/signal.h>
|
||||
#include <lock-intern.h>
|
||||
|
||||
#ifndef _EXTERN_INLINE
|
||||
#define _EXTERN_INLINE extern __inline
|
||||
#ifndef _HURD_FD_H_EXTERN_INLINE
|
||||
#define _HURD_FD_H_EXTERN_INLINE extern __inline
|
||||
#endif
|
||||
|
||||
/* Returns the descriptor cell for FD. If FD is invalid or unused, return
|
||||
NULL. The cell is unlocked; when ready to use it, lock it and check for
|
||||
it being unused. */
|
||||
|
||||
_EXTERN_INLINE struct hurd_fd *
|
||||
_HURD_FD_H_EXTERN_INLINE struct hurd_fd *
|
||||
_hurd_fd_get (int fd)
|
||||
{
|
||||
struct hurd_fd *descriptor;
|
||||
@@ -134,7 +134,7 @@ _hurd_fd_get (int fd)
|
||||
/* Check if ERR should generate a signal.
|
||||
Returns the signal to take, or zero if none. */
|
||||
|
||||
_EXTERN_INLINE error_t
|
||||
_HURD_FD_H_EXTERN_INLINE error_t
|
||||
_hurd_fd_error_signal (error_t err)
|
||||
{
|
||||
switch (err)
|
||||
@@ -155,7 +155,7 @@ _hurd_fd_error_signal (error_t err)
|
||||
always use this function to handle errors from RPCs made on file
|
||||
descriptor ports. Some errors are translated into signals. */
|
||||
|
||||
_EXTERN_INLINE error_t
|
||||
_HURD_FD_H_EXTERN_INLINE error_t
|
||||
_hurd_fd_error (int fd, error_t err)
|
||||
{
|
||||
int signo = _hurd_fd_error_signal (err);
|
||||
@@ -171,7 +171,7 @@ _hurd_fd_error (int fd, error_t err)
|
||||
/* Handle error code ERR from an RPC on file descriptor FD's port.
|
||||
Set `errno' to the appropriate error code, and always return -1. */
|
||||
|
||||
_EXTERN_INLINE int
|
||||
_HURD_FD_H_EXTERN_INLINE int
|
||||
__hurd_dfail (int fd, error_t err)
|
||||
{
|
||||
errno = _hurd_fd_error (fd, err);
|
||||
|
||||
+9
-9
@@ -1,5 +1,5 @@
|
||||
/* Lightweight user references for ports.
|
||||
Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993, 1994, 1995, 1997, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -54,14 +54,14 @@ struct hurd_port
|
||||
__result; })
|
||||
|
||||
|
||||
#ifndef _EXTERN_INLINE
|
||||
#define _EXTERN_INLINE extern __inline
|
||||
#ifndef _HURD_PORT_H_EXTERN_INLINE
|
||||
#define _HURD_PORT_H_EXTERN_INLINE extern __inline
|
||||
#endif
|
||||
|
||||
|
||||
/* Initialize *PORT to INIT. */
|
||||
|
||||
_EXTERN_INLINE void
|
||||
_HURD_PORT_H_EXTERN_INLINE void
|
||||
_hurd_port_init (struct hurd_port *port, mach_port_t init)
|
||||
{
|
||||
__spin_lock_init (&port->lock);
|
||||
@@ -76,7 +76,7 @@ extern void _hurd_port_cleanup (void *, jmp_buf, int);
|
||||
/* Get a reference to *PORT, which is locked.
|
||||
Pass return value and LINK to _hurd_port_free when done. */
|
||||
|
||||
_EXTERN_INLINE mach_port_t
|
||||
_HURD_PORT_H_EXTERN_INLINE mach_port_t
|
||||
_hurd_port_locked_get (struct hurd_port *port,
|
||||
struct hurd_userlink *link)
|
||||
{
|
||||
@@ -94,7 +94,7 @@ _hurd_port_locked_get (struct hurd_port *port,
|
||||
|
||||
/* Same, but locks PORT first. */
|
||||
|
||||
_EXTERN_INLINE mach_port_t
|
||||
_HURD_PORT_H_EXTERN_INLINE mach_port_t
|
||||
_hurd_port_get (struct hurd_port *port,
|
||||
struct hurd_userlink *link)
|
||||
{
|
||||
@@ -109,7 +109,7 @@ _hurd_port_get (struct hurd_port *port,
|
||||
|
||||
/* Free a reference gotten with `USED_PORT = _hurd_port_get (PORT, LINK);' */
|
||||
|
||||
_EXTERN_INLINE void
|
||||
_HURD_PORT_H_EXTERN_INLINE void
|
||||
_hurd_port_free (struct hurd_port *port,
|
||||
struct hurd_userlink *link,
|
||||
mach_port_t used_port)
|
||||
@@ -133,7 +133,7 @@ _hurd_port_free (struct hurd_port *port,
|
||||
/* Set *PORT's port to NEWPORT. NEWPORT's reference is consumed by PORT->port.
|
||||
PORT->lock is locked. */
|
||||
|
||||
_EXTERN_INLINE void
|
||||
_HURD_PORT_H_EXTERN_INLINE void
|
||||
_hurd_port_locked_set (struct hurd_port *port, mach_port_t newport)
|
||||
{
|
||||
mach_port_t old;
|
||||
@@ -146,7 +146,7 @@ _hurd_port_locked_set (struct hurd_port *port, mach_port_t newport)
|
||||
|
||||
/* Same, but locks PORT first. */
|
||||
|
||||
_EXTERN_INLINE void
|
||||
_HURD_PORT_H_EXTERN_INLINE void
|
||||
_hurd_port_set (struct hurd_port *port, mach_port_t newport)
|
||||
{
|
||||
HURD_CRITICAL_BEGIN;
|
||||
|
||||
+8
-4
@@ -1,5 +1,5 @@
|
||||
/* Implementing POSIX.1 signals under the Hurd.
|
||||
Copyright (C) 1993, 94, 95, 96, 98 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993, 94, 95, 96, 98, 99 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -124,7 +124,11 @@ extern struct hurd_sigstate *_hurd_self_sigstate (void)
|
||||
by different threads. */
|
||||
__attribute__ ((__const__));
|
||||
|
||||
_EXTERN_INLINE struct hurd_sigstate *
|
||||
#ifndef _HURD_SIGNAL_H_EXTERN_INLINE
|
||||
#define _HURD_SIGNAL_H_EXTERN_INLINE extern __inline
|
||||
#endif
|
||||
|
||||
_HURD_SIGNAL_H_EXTERN_INLINE struct hurd_sigstate *
|
||||
_hurd_self_sigstate (void)
|
||||
{
|
||||
struct hurd_sigstate **location =
|
||||
@@ -159,7 +163,7 @@ extern int _hurd_core_limit;
|
||||
interrupted lest the signal handler try to take the same lock and
|
||||
deadlock result. */
|
||||
|
||||
_EXTERN_INLINE void *
|
||||
_HURD_SIGNAL_H_EXTERN_INLINE void *
|
||||
_hurd_critical_section_lock (void)
|
||||
{
|
||||
struct hurd_sigstate **location =
|
||||
@@ -185,7 +189,7 @@ _hurd_critical_section_lock (void)
|
||||
return ss;
|
||||
}
|
||||
|
||||
_EXTERN_INLINE void
|
||||
_HURD_SIGNAL_H_EXTERN_INLINE void
|
||||
_hurd_critical_section_unlock (void *our_lock)
|
||||
{
|
||||
if (our_lock == NULL)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Internal per-thread variables for the Hurd.
|
||||
Copyright (C) 1994, 95, 97, 98 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994, 95, 97, 98, 99 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -66,14 +66,14 @@ enum __hurd_threadvar_index
|
||||
};
|
||||
|
||||
|
||||
#ifndef _EXTERN_INLINE
|
||||
#define _EXTERN_INLINE extern __inline
|
||||
#ifndef _HURD_THREADVAR_H_EXTERN_INLINE
|
||||
#define _HURD_THREADVAR_H_EXTERN_INLINE extern __inline
|
||||
#endif
|
||||
|
||||
/* Return the location of the value for the per-thread variable with index
|
||||
INDEX used by the thread whose stack pointer is SP. */
|
||||
|
||||
_EXTERN_INLINE unsigned long int *
|
||||
_HURD_THREADVAR_H_EXTERN_INLINE unsigned long int *
|
||||
__hurd_threadvar_location_from_sp (enum __hurd_threadvar_index __index,
|
||||
void *__sp)
|
||||
{
|
||||
@@ -97,7 +97,7 @@ __hurd_threadvar_location (enum __hurd_threadvar_index __index)
|
||||
the same stack frame by different threads. */
|
||||
__attribute__ ((__const__));
|
||||
|
||||
_EXTERN_INLINE unsigned long int *
|
||||
_HURD_THREADVAR_H_EXTERN_INLINE unsigned long int *
|
||||
__hurd_threadvar_location (enum __hurd_threadvar_index __index)
|
||||
{
|
||||
return __hurd_threadvar_location_from_sp (__index,
|
||||
@@ -106,7 +106,7 @@ __hurd_threadvar_location (enum __hurd_threadvar_index __index)
|
||||
|
||||
/* Return the current thread's location for `errno'.
|
||||
The syntax of this function allows redeclarations like `int errno'. */
|
||||
_EXTERN_INLINE int *
|
||||
_HURD_THREADVAR_H_EXTERN_INLINE int *
|
||||
__hurd_errno_location (void)
|
||||
{
|
||||
return (int *) __hurd_threadvar_location (_HURD_THREADVAR_ERRNO);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Support for chains recording users of a resource; `struct hurd_userlink'.
|
||||
Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994, 1995, 1997, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -70,14 +70,14 @@ struct hurd_userlink
|
||||
};
|
||||
|
||||
|
||||
#ifndef _EXTERN_INLINE
|
||||
#define _EXTERN_INLINE extern __inline
|
||||
#ifndef _HURD_USERLINK_H_EXTERN_INLINE
|
||||
#define _HURD_USERLINK_H_EXTERN_INLINE extern __inline
|
||||
#endif
|
||||
|
||||
|
||||
/* Attach LINK to the chain of users at *CHAINP. */
|
||||
|
||||
_EXTERN_INLINE void
|
||||
_HURD_USERLINK_H_EXTERN_INLINE void
|
||||
_hurd_userlink_link (struct hurd_userlink **chainp,
|
||||
struct hurd_userlink *link)
|
||||
{
|
||||
@@ -102,7 +102,7 @@ _hurd_userlink_link (struct hurd_userlink **chainp,
|
||||
/* Detach LINK from its chain. Returns nonzero iff this was the
|
||||
last user of the resource and it should be deallocated. */
|
||||
|
||||
_EXTERN_INLINE int
|
||||
_HURD_USERLINK_H_EXTERN_INLINE int
|
||||
_hurd_userlink_unlink (struct hurd_userlink *link)
|
||||
{
|
||||
/* We should deallocate the resource used if this chain has been detached
|
||||
@@ -132,7 +132,7 @@ _hurd_userlink_unlink (struct hurd_userlink *link)
|
||||
value is zero, someone is still using the resource and they will
|
||||
deallocate it when they are finished. */
|
||||
|
||||
_EXTERN_INLINE int
|
||||
_HURD_USERLINK_H_EXTERN_INLINE int
|
||||
_hurd_userlink_clear (struct hurd_userlink **chainp)
|
||||
{
|
||||
if (*chainp == NULL)
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
/* Include these first to avoid defining their inline functions. */
|
||||
#include <lock-intern.h>
|
||||
#include <signal.h>
|
||||
|
||||
#undef _EXTERN_INLINE
|
||||
#define _EXTERN_INLINE /* Define the real function. */
|
||||
|
||||
#include "hurd.h"
|
||||
#include "hurd/fd.h"
|
||||
#include "hurd/signal.h"
|
||||
#include "hurd/userlink.h"
|
||||
#include "hurd/threadvar.h"
|
||||
#include "hurd/port.h"
|
||||
+6
-3
@@ -1,5 +1,5 @@
|
||||
/* Support code for dealing with priorities in the Hurd.
|
||||
Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994,95,96,97,99 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
#include <hurd/resource.h>
|
||||
#include <hurd.h>
|
||||
#include <unistd.h>
|
||||
|
||||
error_t
|
||||
_hurd_priority_which_map (enum __priority_which which, int who,
|
||||
@@ -26,7 +27,7 @@ _hurd_priority_which_map (enum __priority_which which, int who,
|
||||
int pi_flags)
|
||||
{
|
||||
mach_msg_type_number_t npids = 64, i;
|
||||
pid_t pidbuf[npids], *pids;
|
||||
pid_t pidbuf[npids], *pids = pidbuf;
|
||||
error_t err;
|
||||
struct procinfo *pip;
|
||||
int pibuf[sizeof *pip + 5 * sizeof (pip->threadinfos[0])], *pi = pibuf;
|
||||
@@ -36,7 +37,7 @@ _hurd_priority_which_map (enum __priority_which which, int who,
|
||||
{
|
||||
case PRIO_PROCESS:
|
||||
npids = 1;
|
||||
pids[0] = who;
|
||||
pids[0] = who ?: getpid (); /* XXX function could special-case self? */
|
||||
err = 0;
|
||||
break;
|
||||
|
||||
@@ -45,6 +46,8 @@ _hurd_priority_which_map (enum __priority_which which, int who,
|
||||
break;
|
||||
|
||||
case PRIO_USER:
|
||||
if (who == 0)
|
||||
who = geteuid ();
|
||||
err = __USEPORT (PROC, __proc_getallpids (port, &pids, &npids));
|
||||
break;
|
||||
|
||||
|
||||
+32
-15
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -448,7 +448,6 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
|
||||
error_t err;
|
||||
struct machine_thread_all_state thread_state;
|
||||
enum { stop, ignore, core, term, handle } act;
|
||||
struct hurd_signal_preemptor *pe;
|
||||
sighandler_t handler;
|
||||
sigset_t pending;
|
||||
int ss_suspended;
|
||||
@@ -549,27 +548,45 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
|
||||
|
||||
/* Check for a preempted signal. Preempted signals can arrive during
|
||||
critical sections. */
|
||||
{
|
||||
inline sighandler_t try_preemptor (struct hurd_signal_preemptor *pe)
|
||||
{ /* PE cannot be null. */
|
||||
do
|
||||
{
|
||||
if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->code))
|
||||
{
|
||||
if (pe->preemptor)
|
||||
{
|
||||
sighandler_t handler = (*pe->preemptor) (pe, ss,
|
||||
&signo, detail);
|
||||
if (handler != SIG_ERR)
|
||||
return handler;
|
||||
}
|
||||
else
|
||||
return pe->handler;
|
||||
}
|
||||
pe = pe->next;
|
||||
} while (pe != 0);
|
||||
return SIG_ERR;
|
||||
}
|
||||
|
||||
handler = SIG_ERR;
|
||||
for (pe = ss->preemptors; pe && handler == SIG_ERR; pe = pe->next)
|
||||
if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->code))
|
||||
handler = (*pe->preemptor) (pe, ss, &signo, detail);
|
||||
handler = ss->preemptors ? try_preemptor (ss->preemptors) : SIG_ERR;
|
||||
|
||||
if (handler == SIG_ERR && (__sigmask (signo) & _hurdsig_preempted_set))
|
||||
{
|
||||
__mutex_lock (&_hurd_siglock);
|
||||
for (pe = _hurdsig_preemptors; pe && handler == SIG_ERR; pe = pe->next)
|
||||
if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->code))
|
||||
handler = (*pe->preemptor) (pe, ss, &signo, detail);
|
||||
__mutex_unlock (&_hurd_siglock);
|
||||
}
|
||||
/* If no thread-specific preemptor, check for a global one. */
|
||||
if (handler == SIG_ERR && (__sigmask (signo) & _hurdsig_preempted_set))
|
||||
{
|
||||
__mutex_lock (&_hurd_siglock);
|
||||
handler = try_preemptor (_hurdsig_preemptors);
|
||||
__mutex_unlock (&_hurd_siglock);
|
||||
}
|
||||
}
|
||||
|
||||
ss_suspended = 0;
|
||||
|
||||
if (handler == SIG_IGN)
|
||||
/* Ignore the signal altogether. */
|
||||
act = ignore;
|
||||
if (handler != SIG_ERR)
|
||||
else if (handler != SIG_ERR)
|
||||
/* Run the preemption-provided handler. */
|
||||
act = handle;
|
||||
else
|
||||
|
||||
+5
-4
@@ -1,5 +1,5 @@
|
||||
/* _hurd_socket_server - Find the server for a socket domain.
|
||||
Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991,92,93,94,95,97,99 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -30,7 +30,7 @@
|
||||
static struct mutex lock;
|
||||
|
||||
static file_t *servers;
|
||||
static int max_domain;
|
||||
static int max_domain = -1;
|
||||
|
||||
/* Return a port to the socket server for DOMAIN.
|
||||
Socket servers translate nodes in the directory _SERVERS_SOCKET
|
||||
@@ -56,8 +56,9 @@ _hurd_socket_server (int domain, int dead)
|
||||
file_t *new = realloc (servers, (domain + 1) * sizeof (file_t));
|
||||
if (new != NULL)
|
||||
{
|
||||
while (max_domain <= domain)
|
||||
new[max_domain++] = MACH_PORT_NULL;
|
||||
do
|
||||
new[++max_domain] = MACH_PORT_NULL;
|
||||
while (max_domain < domain);
|
||||
servers = new;
|
||||
}
|
||||
else
|
||||
|
||||
+132
-56
@@ -1,5 +1,5 @@
|
||||
/* Replacement for mach_msg used in interruptible Hurd RPCs.
|
||||
Copyright (C) 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||
Copyright (C) 95, 96, 97, 98, 99 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <mach/mig_errors.h>
|
||||
#include <mach/mig_support.h>
|
||||
#include <hurd/signal.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "intr-msg.h"
|
||||
|
||||
@@ -36,39 +37,75 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
|
||||
{
|
||||
error_t err;
|
||||
struct hurd_sigstate *ss;
|
||||
int user_timeout;
|
||||
const mach_msg_option_t user_option = option;
|
||||
const mach_msg_timeout_t user_timeout = timeout;
|
||||
|
||||
if (_hurd_msgport_thread == MACH_PORT_NULL)
|
||||
struct clobber { int i[2]; };
|
||||
union msg
|
||||
{
|
||||
mach_msg_header_t header;
|
||||
mig_reply_header_t reply;
|
||||
struct
|
||||
{
|
||||
/* The signal thread is not set up yet, so we cannot do the
|
||||
normal signal magic. Do a simple uninterruptible RPC instead. */
|
||||
return __mach_msg (msg, option, send_size, rcv_size, rcv_name,
|
||||
mach_msg_header_t header;
|
||||
int type;
|
||||
int code;
|
||||
} check;
|
||||
struct
|
||||
{
|
||||
mach_msg_header_t header;
|
||||
struct clobber data;
|
||||
} request;
|
||||
};
|
||||
union msg *const m = (void *) msg;
|
||||
mach_msg_bits_t msgh_bits;
|
||||
mach_port_t remote_port;
|
||||
mach_msg_id_t msgid;
|
||||
struct clobber save_data;
|
||||
|
||||
if ((option & (MACH_SEND_MSG|MACH_RCV_MSG)) != (MACH_SEND_MSG|MACH_RCV_MSG)
|
||||
|| _hurd_msgport_thread == MACH_PORT_NULL)
|
||||
{
|
||||
/* Either this is not an RPC (i.e., only a send or only a receive),
|
||||
so it can't be interruptible; or, the signal thread is not set up
|
||||
yet, so we cannot do the normal signal magic. Do a normal,
|
||||
uninterruptible mach_msg call instead. */
|
||||
return __mach_msg (&m->header, option, send_size, rcv_size, rcv_name,
|
||||
timeout, notify);
|
||||
}
|
||||
|
||||
ss = _hurd_self_sigstate ();
|
||||
|
||||
/* Notice now if the user requested a timeout. OPTION may have the bit
|
||||
added by interruption semantics, and we must distinguish. */
|
||||
user_timeout = option & MACH_RCV_TIMEOUT;
|
||||
/* Save state that gets clobbered by an EINTR reply message.
|
||||
We will need to restore it if we want to retry the RPC. */
|
||||
msgh_bits = m->header.msgh_bits;
|
||||
remote_port = m->header.msgh_remote_port;
|
||||
msgid = m->header.msgh_id;
|
||||
assert (rcv_size >= sizeof m->request);
|
||||
save_data = m->request.data;
|
||||
|
||||
/* Tell the signal thread that we are doing an interruptible RPC on
|
||||
this port. If we get a signal and should return EINTR, the signal
|
||||
thread will set this variable to MACH_PORT_NULL. The RPC might
|
||||
return EINTR when some other thread gets a signal, in which case we
|
||||
want to restart our call. */
|
||||
ss->intr_port = msg->msgh_remote_port;
|
||||
ss->intr_port = m->header.msgh_remote_port;
|
||||
|
||||
/* A signal may arrive here, after intr_port is set, but before
|
||||
the mach_msg system call. The signal handler might do an
|
||||
interruptible RPC, and clobber intr_port; then it would not be
|
||||
set properly when we actually did send the RPC, and a later
|
||||
signal wouldn't interrupt that RPC. So,
|
||||
_hurd_setup_sighandler saves intr_port in the sigcontext, and
|
||||
sigreturn restores it. */
|
||||
/* A signal may arrive here, after intr_port is set, but before the
|
||||
mach_msg system call. The signal handler might do an interruptible
|
||||
RPC, and clobber intr_port; then it would not be set properly when we
|
||||
actually did send the RPC, and a later signal wouldn't interrupt that
|
||||
RPC. So, _hurd_setup_sighandler saves intr_port in the sigcontext,
|
||||
and sigreturn restores it. */
|
||||
|
||||
message:
|
||||
|
||||
/* XXX
|
||||
At all points here (once SS->intr_port is set), the signal thread
|
||||
thinks we are "about to enter the syscall", and might mutate our
|
||||
return-value register. This is bogus.
|
||||
*/
|
||||
|
||||
if (ss->cancel)
|
||||
{
|
||||
/* We have been cancelled. Don't do an RPC at all. */
|
||||
@@ -77,13 +114,14 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
|
||||
return EINTR;
|
||||
}
|
||||
|
||||
/* Note that the signal trampoline code might modify our OPTION! */
|
||||
err = INTR_MSG_TRAP (msg, option, send_size,
|
||||
rcv_size, rcv_name, timeout, notify);
|
||||
|
||||
switch (err)
|
||||
{
|
||||
case MACH_RCV_TIMED_OUT:
|
||||
if (user_timeout)
|
||||
if (user_option & MACH_RCV_TIMEOUT)
|
||||
/* The real user RPC timed out. */
|
||||
break;
|
||||
else
|
||||
@@ -92,18 +130,34 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
|
||||
goto interrupted;
|
||||
|
||||
case MACH_SEND_INTERRUPTED: /* RPC didn't get out. */
|
||||
case EINTR: /* Server not cooperating with interrupt. */
|
||||
if (!(option & MACH_SEND_MSG))
|
||||
{
|
||||
/* Oh yes, it did! Since we were not doing a message send,
|
||||
this return code cannot have come from the kernel!
|
||||
Instead, it was the signal thread mutating our state to tell
|
||||
us not to enter this RPC. However, we are already in the receive!
|
||||
Since the signal thread thought we weren't in the RPC yet,
|
||||
it didn't do an interrupt_operation.
|
||||
XXX */
|
||||
goto retry_receive;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
|
||||
case EINTR:
|
||||
/* Either the process was stopped and continued,
|
||||
or the server doesn't support interrupt_operation. */
|
||||
if (ss->intr_port != MACH_PORT_NULL)
|
||||
/* If this signal was for us and it should interrupt calls, the
|
||||
signal thread will have cleared SS->intr_port.
|
||||
Since it's not cleared, the signal was for another thread,
|
||||
or SA_RESTART is set. Restart the interrupted call. */
|
||||
{
|
||||
restart:
|
||||
if (rcv_name != MACH_PORT_NULL)
|
||||
/* Make sure we have a valid reply port. The one we were using
|
||||
may have been destroyed by interruption. */
|
||||
msg->msgh_local_port = rcv_name = __mig_get_reply_port ();
|
||||
/* Make sure we have a valid reply port. The one we were using
|
||||
may have been destroyed by interruption. */
|
||||
m->header.msgh_local_port = rcv_name = __mig_get_reply_port ();
|
||||
m->header.msgh_bits = msgh_bits;
|
||||
option = user_option;
|
||||
timeout = user_timeout;
|
||||
goto message;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
@@ -122,52 +176,74 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
|
||||
|
||||
case MACH_RCV_INTERRUPTED: /* RPC sent; no reply. */
|
||||
option &= ~MACH_SEND_MSG; /* Don't send again. */
|
||||
retry_receive:
|
||||
if (ss->intr_port == MACH_PORT_NULL)
|
||||
{
|
||||
/* This signal or cancellation was for us. We need to wait for
|
||||
the reply, but not hang forever. */
|
||||
option |= MACH_RCV_TIMEOUT;
|
||||
/* Never decrease the user's timeout. */
|
||||
if (!user_timeout || timeout > _hurd_interrupted_rpc_timeout)
|
||||
if (!(user_option & MACH_RCV_TIMEOUT)
|
||||
|| timeout > _hurd_interrupted_rpc_timeout)
|
||||
timeout = _hurd_interrupted_rpc_timeout;
|
||||
}
|
||||
else
|
||||
{
|
||||
option = user_option;
|
||||
timeout = user_timeout;
|
||||
}
|
||||
goto message; /* Retry the receive. */
|
||||
|
||||
case MACH_MSG_SUCCESS:
|
||||
if (option & MACH_RCV_MSG)
|
||||
{
|
||||
/* We got a reply. Was it EINTR? */
|
||||
const union
|
||||
{
|
||||
/* We got a reply. Was it EINTR? */
|
||||
mig_reply_header_t *const reply = (void *) msg;
|
||||
const union
|
||||
{
|
||||
mach_msg_type_t t;
|
||||
int i;
|
||||
} check =
|
||||
{ t: {
|
||||
MACH_MSG_TYPE_INTEGER_T,
|
||||
MACH_MSG_TYPE_INTEGER_T,
|
||||
1,
|
||||
TRUE,
|
||||
FALSE,
|
||||
FALSE,
|
||||
0
|
||||
} };
|
||||
if (msg->msgh_size == sizeof *reply &&
|
||||
!(msg->msgh_bits & MACH_MSGH_BITS_COMPLEX) &&
|
||||
*(int *) &reply->RetCodeType == check.i &&
|
||||
reply->RetCode == EINTR)
|
||||
{
|
||||
/* It is indeed EINTR. Is the interrupt for us? */
|
||||
if (ss->intr_port != MACH_PORT_NULL)
|
||||
mach_msg_type_t t;
|
||||
int i;
|
||||
} check =
|
||||
{ t: { MACH_MSG_TYPE_INTEGER_T, sizeof (integer_t) * 8,
|
||||
1, TRUE, FALSE, FALSE, 0 } };
|
||||
|
||||
if (m->reply.RetCode == EINTR &&
|
||||
m->header.msgh_size == sizeof m->reply &&
|
||||
m->check.type == check.i &&
|
||||
!(m->header.msgh_bits & MACH_MSGH_BITS_COMPLEX))
|
||||
{
|
||||
/* It is indeed EINTR. Is the interrupt for us? */
|
||||
if (ss->intr_port != MACH_PORT_NULL)
|
||||
{
|
||||
/* Nope; repeat the RPC.
|
||||
XXX Resources moved? */
|
||||
goto restart;
|
||||
else
|
||||
/* The EINTR return indicates cancellation, so clear the
|
||||
flag. */
|
||||
ss->cancel = 0;
|
||||
}
|
||||
}
|
||||
|
||||
assert (m->header.msgh_id == msgid + 100);
|
||||
|
||||
/* We know we have a valid reply port, because we just
|
||||
received the EINTR reply on it. Restore it and the
|
||||
other fields in the message header needed for send,
|
||||
since the header now reflects receipt of the reply. */
|
||||
m->header.msgh_local_port = rcv_name;
|
||||
m->header.msgh_remote_port = remote_port;
|
||||
m->header.msgh_id = msgid;
|
||||
m->header.msgh_bits = msgh_bits;
|
||||
/* Restore the two words clobbered by the reply data. */
|
||||
m->request.data = save_data;
|
||||
|
||||
/* Restore the original mach_msg options.
|
||||
OPTION may have had MACH_RCV_TIMEOUT added,
|
||||
and/or MACH_SEND_MSG removed. */
|
||||
option = user_option;
|
||||
timeout = user_timeout;
|
||||
|
||||
/* Now we are ready to repeat the original message send. */
|
||||
goto message;
|
||||
}
|
||||
else
|
||||
/* The EINTR return indicates cancellation,
|
||||
so clear the flag. */
|
||||
ss->cancel = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default: /* Quiet -Wswitch-enum. */
|
||||
|
||||
+4
-1
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1994, 1997, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -33,6 +33,9 @@ _hurd_new_fd (io_t port, io_t ctty)
|
||||
/* Initialize the port cells. */
|
||||
_hurd_port_init (&d->port, port);
|
||||
_hurd_port_init (&d->ctty, ctty);
|
||||
|
||||
/* And the fcntl flags. */
|
||||
d->flags = 0;
|
||||
}
|
||||
|
||||
return d;
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1994, 1997, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -67,6 +67,7 @@ _hurd_port2fd (struct hurd_fd *d, io_t port, int flags)
|
||||
mach_port_t old
|
||||
= _hurd_userlink_clear (&d->port.users) ? d->port.port : MACH_PORT_NULL;
|
||||
d->port.port = port;
|
||||
d->flags = 0;
|
||||
if (old != MACH_PORT_NULL)
|
||||
__mach_port_deallocate (__mach_task_self (), old);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user