日本OpenSolaris Users Group有志による、レポジトリサーバ作成のためのspecファイル群です。
Revision | 4cf59be8dfbee1b9910e66820195d8a6312a0667 (tree) |
---|---|
Time | 2012-06-13 21:26:54 |
Author | Osamu Tabata <cantimerny.g@gmai...> |
Commiter | Osamu Tabata |
SFEgcc: Initial commit
@@ -0,0 +1,762 @@ | ||
1 | +# | |
2 | +# spec file for package SFEgcc | |
3 | +# | |
4 | +# includes module(s): GNU gcc | |
5 | +# | |
6 | + | |
7 | +##TODO## test sparc version of gcc-05-LINK_LIBGCC_SPEC-sparcv9.diff | |
8 | + | |
9 | +#provide symbolic links in places define below: | |
10 | +#start the paths with a leading "/" | |
11 | +#example: %define gccsymlinks /usr/gcc /usr/gnu | |
12 | + | |
13 | +%define gccsymlinks /usr/gcc /usr/gnu | |
14 | +#IMPORTANT! READ ON BELOW and set switches and paths accordingly | |
15 | + | |
16 | +#hack for the %files section. use define for each directory from above | |
17 | +#to control the non scriptable %files section | |
18 | +#1 = enabled 0 = disabled | |
19 | +#and special<n>path point to one of the paths noted in %{gccsymlinks} | |
20 | +%define symlinktarget1enabled 1 | |
21 | +%define symlinktarget1path /usr/gcc | |
22 | + | |
23 | +%define symlinktarget2enabled 1 | |
24 | +%define symlinktarget2path /usr/gnu | |
25 | + | |
26 | +#spare | |
27 | +%define symlinktarget3enabled 0 | |
28 | +%define symlinktarget3path /usr | |
29 | + | |
30 | +# to more widely test if this change causes regressions, by default off: | |
31 | +# want this? compile with: --with-handle_pragma_pack_push_pop | |
32 | +%define with_handle_pragma_pack_push_pop %{?_with_handle_pragma_pack_push_pop:1}%{?!_with_handle_pragma_pack_push_pop:0} | |
33 | + | |
34 | +%include Solaris.inc | |
35 | +%include base.inc | |
36 | +%include packagenamemacros.inc | |
37 | + | |
38 | +%define osbuild %(uname -v | sed -e 's/[A-z_]//g') | |
39 | + | |
40 | +##TODO## should include/arch64.inc consider setting _arch64 that way? | |
41 | +# gcc builds 64-bit libs/binaries even on 32-bit CPUs/Kernels (e.g. ATOM CPU) | |
42 | +%ifarch amd64 i386 | |
43 | +%define _arch64 amd64 | |
44 | +%else | |
45 | +%define _arch64 sparcv9 | |
46 | +%endif | |
47 | + | |
48 | + | |
49 | +#default to SUNWbinutils | |
50 | +##TODO## if necessary add osbuild numbers to decide SUNW/SFE version | |
51 | +%define SUNWbinutils %(/usr/bin/pkginfo -q SUNWbinutils 2>/dev/null && echo 1 || echo 0) | |
52 | +%define SFEbinutils %(/usr/bin/pkginfo -q SFEbinutils 2>/dev/null && echo 1 || echo 0) | |
53 | +#see below, older builds then 126 have too old gmp / mpfr to gcc version around 4.4.4 | |
54 | +#%define SFEgmp %(/usr/bin/pkginfo -q SFEgmp 2>/dev/null && echo 1 || echo 0) | |
55 | +##TODO## to be replaced by packagenamemacros, selecting SFEgmp on specific osbuilds where | |
56 | +#it is too old for fresh gcc builds | |
57 | +%define SFEgmp 1 | |
58 | +#%define SFEmpfr %(/usr/bin/pkginfo -q SFEmpfr 2>/dev/null && echo 1 || echo 0) | |
59 | +##TODO## to be replaced by packagenamemacros, selecting SFEmpfr on specific osbuilds where | |
60 | +#it is too old for fresh gcc builds | |
61 | +%define SFEmpfr 1 | |
62 | + | |
63 | +# force using SFEbinutils | |
64 | +#if SFEbinutils is not present, force it by the commandline switch --with_SFEbinutils | |
65 | +%define with_SFEbinutils %{?_with_SFEbinutils:1}%{?!_with_SFEbinutils:0} | |
66 | +%if %with_SFEbinutils | |
67 | +%define SFEbinutils 1 | |
68 | +%define SUNWbinutils 0 | |
69 | +%endif | |
70 | + | |
71 | +# force using gmp | mpfr | |
72 | +#if SFEgmp is not present, force them as required by the commandline switch --with_SFEgmp | |
73 | +%define with_SFEgmp %{?_with_SFEgmp:1}%{?!_with_SFEgmp:0} | |
74 | +#if build is lower then 126 then force it (update to gmp see CR 6863696) | |
75 | +%if %(expr %{osbuild} '<' 126) | |
76 | +%define with_SFEgmp 1 | |
77 | +%endif | |
78 | + | |
79 | +%if %with_SFEgmp | |
80 | +%define SFEgmp 1 | |
81 | +%endif | |
82 | + | |
83 | +#if SFEgmp is not present, force them as required by the commandline switch --with_SFEmpfr | |
84 | +%define with_SFEmpfr %{?_with_SFEmpfr:1}%{?!_with_SFEmpfr:0} | |
85 | +#if build is lower then 126 then force it (update to gmp see CR 6863684) | |
86 | +%if %(expr %{osbuild} '<' 126) | |
87 | +%define with_SFEmpfr 1 | |
88 | +%endif | |
89 | + | |
90 | +%if %with_SFEmpfr | |
91 | +%define SFEmpfr 1 | |
92 | +%endif | |
93 | + | |
94 | +#if SFElibmpc is not present, force them as required by the commandline switch --with-SFElibmpc | |
95 | +#future OS versins might include a libmpc, leave code commented until then | |
96 | +%define with_SFElibmpc %{?_with_SFElibmpc:1}%{?!_with_SFElibmpc:0} | |
97 | +#parked #if build is lower then 126 then force it (update to gmp see CR 6863684) | |
98 | +#parked %if %(expr %{osbuild} '<' 126) | |
99 | +#for *now* require SFElibmpc in any case | |
100 | +%define with_SFElibmpc 1 | |
101 | +#parked %endif | |
102 | + | |
103 | +%if %with_SFElibmpc | |
104 | +%define SFElibmpc 1 | |
105 | +%endif | |
106 | + | |
107 | +#if you want a specific version of gcc be built, then change the default setting | |
108 | +#below *or* specify the number on the command line (gcc_version), example see below | |
109 | + | |
110 | +# To set a specific gcc version to be build, do this from *outside* | |
111 | +# pkgtool build SFEgcc --define 'gcc_version 4.6.1' | |
112 | + | |
113 | +%if %{!?gcc_version:1} | |
114 | +#make version bump *here* - this is the default version being built | |
115 | +%define version 4.6.3 | |
116 | +%else | |
117 | +#gcc version is already defined from *outside*, from the pkgtool command line | |
118 | +%define version %{gcc_version} | |
119 | +%endif | |
120 | +#special handling of version / gcc_version | |
121 | + | |
122 | +%define major_minor 4.6 | |
123 | +# breaks build .... use 4.6.1 and remove the third++ part | |
124 | +#%define major_minor %( echo %{version} | sed -e 's/\(^[0-9]*\.[0-9]*\)\..*/\1/' ) | |
125 | + | |
126 | +#transform 4.6. -> 46 | |
127 | +%define majorminornumber %( echo %{major_minor} | sed -e 's/\.//g' ) | |
128 | +%define _prefix /usr/gcc/%major_minor | |
129 | +%define _infodir %{_prefix}/info | |
130 | + | |
131 | +# This "Name:" SFEgcc and SFEgccruntime is a compatibility layer, | |
132 | +# and delivering only symbolic links to corresponding versioned | |
133 | +# directories with real files delivered in sub packages like | |
134 | +# SFEgcc-%majorminornumber and SFEgccruntime-%majorminornumber | |
135 | + | |
136 | +##TODO## make symlinks mediated symlinks for machine-local configured, | |
137 | +#preferred versions. Not as flexible as we want (want: user selectable | |
138 | +#gcc variant, but we get only whole machine defaults) | |
139 | + | |
140 | +Name: SFEgcc | |
141 | +IPS_package_name: sfe/developer/gcc | |
142 | +Summary: GNU gcc compiler - metapackage with symbolic links to version %{major_minor} compiler files available in %{gccsymlinks} | |
143 | +#Version: see above, %{version} is set elsewhere | |
144 | +License: GPLv3+ | |
145 | +SUNW_Copyright: gcc.copyright | |
146 | +Source: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.bz2 | |
147 | +Patch1: gcc-01-libtool-rpath.diff | |
148 | +%if %with_handle_pragma_pack_push_pop | |
149 | +Patch2: gcc-02-handle_pragma_pack_push_pop.diff | |
150 | +%else | |
151 | +%endif | |
152 | +Patch3: gcc-03-gnulib.diff | |
153 | + | |
154 | +#LINK_LIBGCC_SPEC | |
155 | +#gcc-05 could be reworked to know both, amd64 and sparcv9 | |
156 | +%ifarch i386 amd64 | |
157 | +Patch5: gcc-05-LINK_LIBGCC_SPEC.diff | |
158 | +%endif | |
159 | +%ifarch sparcv9 | |
160 | +Patch5: gcc-05-LINK_LIBGCC_SPEC-sparcv9.diff | |
161 | +%endif | |
162 | + | |
163 | +# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49347 | |
164 | +Patch10: gcc-10-spawn.diff | |
165 | + | |
166 | +SUNW_BaseDir: %{_basedir} | |
167 | +BuildRoot: %{_tmppath}/%{name}-%{version}-build | |
168 | +%include default-depend.inc | |
169 | + | |
170 | +#Attention - this is the dependency chain for the compiler: | |
171 | +# SFEgcc -needs-> SFEgcc-46,SFEgccruntime-46 | |
172 | +# this is an example for a program which can have this | |
173 | +# dependency chain (most common case) | |
174 | +# SFEapplication -needs-> SFEgccruntime | |
175 | +# *OR* in special cases | |
176 | +# SFEapplication -needs-> SFEgccruntime-46 | |
177 | +# | |
178 | +# today we want exactly 4.6. later on if we can ask a minimum revision, | |
179 | +# then a "Requires:" can be changed to request the minimum version which | |
180 | +# is needed to e.g. >= 4.6 | |
181 | +Requires: SFEgcc-%{majorminornumber},SFEgccruntime-%{majorminornumber} | |
182 | +#cosmetic: | |
183 | +Requires: SFEgccruntime | |
184 | + | |
185 | +BuildRequires: SFElibiconv-devel | |
186 | +Requires: SFElibiconv | |
187 | +BuildRequires: SUNWbash | |
188 | + | |
189 | +%if %SFEgmp | |
190 | +BuildRequires: SFEgmp-devel | |
191 | +Requires: SFEgmp | |
192 | +#workaround on IPS which is wrong with BASEdir as "/" -> then assume /usr/gnu | |
193 | +%define SFEgmpbasedir %(pkgparam SFEgmp BASEDIR 2>/dev/null | sed -e 's+^/$+/usr/gnu+') | |
194 | +%else | |
195 | +BuildRequires: SUNWgnu-mp | |
196 | +Requires: SUNWgnu-mp | |
197 | +%endif | |
198 | + | |
199 | +%if %SFEmpfr | |
200 | +BuildRequires: SFEmpfr-devel | |
201 | +Requires: SFEmpfr | |
202 | +#workaround on IPS which is wrong with BASEdir as "/" -> then assume /usr/gnu | |
203 | +%define SFEmpfrbasedir %(pkgparam SFEmpfr BASEDIR 2>/dev/null | sed -e 's+^/$+/usr/gnu+') | |
204 | +%else | |
205 | +BuildRequires: SUNWgnu-mpfr | |
206 | +Requires: SUNWgnu-mpfr | |
207 | +%endif | |
208 | + | |
209 | +%if %SFElibmpc | |
210 | +BuildRequires: SFElibmpc-devel | |
211 | +Requires: SFElibmpc | |
212 | +#workaround on IPS which is wrong with BASEdir as "/" -> then assume /usr/gnu | |
213 | +%define SFElibmpcbasedir %(pkgparam SFElibmpc BASEDIR 2>/dev/null | sed -e 's+^/$+/usr/gnu+') | |
214 | +%else | |
215 | +#BuildRequires: empty | |
216 | +#Requires: empty | |
217 | +%endif | |
218 | + | |
219 | +%if %SFEbinutils | |
220 | +BuildRequires: SFEbinutils | |
221 | +Requires: SFEbinutils | |
222 | +%else | |
223 | +BuildRequires: SUNWbinutils | |
224 | +Requires: SUNWbinutils | |
225 | +%endif | |
226 | + | |
227 | +Requires: SUNWpostrun | |
228 | + | |
229 | +%package -n SFEgcc-%{majorminornumber} | |
230 | +IPS_package_name: sfe/developer/gcc-46 | |
231 | +Summary: GNU gcc compiler - version %{major_minor} compiler files | |
232 | +Version: %{version} | |
233 | +SUNW_BaseDir: %{_basedir} | |
234 | +%include default-depend.inc | |
235 | +Requires: %{name}runtime-%{majorminornumber} | |
236 | + | |
237 | +%package -n SFEgccruntime | |
238 | +IPS_package_name: sfe/system/library/gcc-runtime | |
239 | +Summary: GNU gcc runtime libraries for applications - metapackage with symbolic links to version %{major_minor} runtime available in %{gccsymlinks} | |
240 | +Version: %{version} | |
241 | +SUNW_BaseDir: %{_basedir} | |
242 | +%include default-depend.inc | |
243 | +Requires: %{name}runtime-%{majorminornumber} | |
244 | + | |
245 | +%package -n SFEgccruntime-%{majorminornumber} | |
246 | +IPS_package_name: sfe/system/library/gcc-46-runtime | |
247 | +Summary: GNU gcc runtime libraries for applications - version %{version} runtime library files | |
248 | +Version: %{version} | |
249 | +SUNW_BaseDir: %{_basedir} | |
250 | +%include default-depend.inc | |
251 | +#not apropriate Requires: %{name} | |
252 | + | |
253 | +%if %SFEgmp | |
254 | +BuildRequires: SFEgmp-devel | |
255 | +Requires: SFEgmp | |
256 | +%else | |
257 | +BuildRequires: SUNWgnu-mp | |
258 | +Requires: SUNWgnu-mp | |
259 | +%endif | |
260 | + | |
261 | +%if %SFEmpfr | |
262 | +BuildRequires: SFEmpfr-devel | |
263 | +Requires: SFEmpfr | |
264 | +%else | |
265 | +BuildRequires: SUNWgnu-mpfr | |
266 | +Requires: SUNWgnu-mpfr | |
267 | +%endif | |
268 | + | |
269 | +%if %SFElibmpc | |
270 | +BuildRequires: SFElibmpc-devel | |
271 | +Requires: SFElibmpc | |
272 | +%else | |
273 | +#BuildRequires: SUNWthis-package-not-availbale | |
274 | +#Requires: SUNWthis-package-not-availbale | |
275 | +%endif | |
276 | + | |
277 | +Requires: SUNWpostrun | |
278 | + | |
279 | + | |
280 | +%if %build_l10n | |
281 | +%package -n SFEgcc-l10n | |
282 | +Summary: %{summary} - l10n files | |
283 | +SUNW_BaseDir: %{_basedir} | |
284 | +%include default-depend.inc | |
285 | +Requires: %{name} | |
286 | +%endif | |
287 | + | |
288 | +%prep | |
289 | +%setup -q -c -n %{name}-%version | |
290 | +mkdir gcc | |
291 | +#with 4.3.3 in new directory libjava/classpath/ | |
292 | +cd gcc-%{version}/libjava/classpath/ | |
293 | +#%patch1 -p1 | |
294 | +cd ../../.. | |
295 | +cd gcc-%{version} | |
296 | +%if %with_handle_pragma_pack_push_pop | |
297 | +%patch2 -p1 | |
298 | +%else | |
299 | +%endif | |
300 | +%patch3 -p1 | |
301 | +%patch5 -p1 | |
302 | +%patch10 -p1 | |
303 | + | |
304 | +%build | |
305 | +CPUS=`/usr/sbin/psrinfo | grep on-line | wc -l | tr -d ' '` | |
306 | +if test "x$CPUS" = "x" -o $CPUS = 0; then | |
307 | + CPUS=1 | |
308 | +fi | |
309 | + | |
310 | +#perl -w -pi.bak -e "s,^#\!\s*/bin/sh,#\!/usr/bin/bash -x," `find . -type f -name configure -exec grep -q "^#\!.*/bin/sh" {} \; -print` | |
311 | +#perl -w -pi.bak -e "s,^#\!\s*/bin/sh,#\!/usr/bin/bash -x," `find . -type f -name configure -exec grep -q "^#\!.*/bin/sh" {} \; -print` | |
312 | + | |
313 | +cd gcc | |
314 | + | |
315 | +%if %build_l10n | |
316 | +nlsopt='--with-libiconv-prefix=/usr/gnu -enable-nls' | |
317 | +%else | |
318 | +nlsopt=-disable-nls | |
319 | +%endif | |
320 | + | |
321 | +%define ld_options -zignore -zcombreloc -Bdirect -i | |
322 | + | |
323 | +export CC=gcc | |
324 | +export CXX=g++ | |
325 | +#export CONFIG_SHELL=/usr/bin/bash | |
326 | +export CONFIG_SHELL=/usr/bin/ksh | |
327 | +export CPP="cc -E -Xs" | |
328 | +export CFLAGS="-O" | |
329 | + | |
330 | +export BOOT_CFLAGS="-Os -Xlinker -i %gcc_picflags %gnu_lib_path" | |
331 | +export BOOT_LDLAGS="%_ldflags -R%{_prefix}/%major_minor/lib %gnu_lib_path" | |
332 | + | |
333 | +# for target libraries (built with bootstrapped GCC) | |
334 | +export CFLAGS_FOR_TARGET="-O2 -Xlinker -i %gcc_picflags" | |
335 | +export LDFLAGS_FOR_TARGET="%_ldflags" | |
336 | +export LDFLAGS="%_ldflags %gnu_lib_path" | |
337 | +export LD_OPTIONS="%ld_options" | |
338 | + | |
339 | +# For pod2man | |
340 | +export PATH="$PATH:/usr/perl5/bin" | |
341 | + | |
342 | +%define build_gcc_with_gnu_ld 0 | |
343 | +#saw problems. 134 did compile, OI147 stopped with probably linker errors | |
344 | +##TODO## research which osbuild started to fail, adjust the number below | |
345 | +#%if %(expr %{osbuild} '>=' 146) | |
346 | +#%define build_gcc_with_gnu_ld 1 | |
347 | +#%endif | |
348 | + | |
349 | +%if %build_gcc_with_gnu_ld | |
350 | +export LD="/usr/gnu/bin/ld" | |
351 | +%else | |
352 | +#avoid slipping in gnu ld | |
353 | +#might be changed to plain /usr/bin/ld instead of CBE ld-wrapper | |
354 | +#export LD=`which ld-wrapper` | |
355 | +#it's actually better to really specify /usr/bin/ld and skip the | |
356 | +#extra options from the wrapper instead of ending up on a system | |
357 | +#without the SFE build-env and have no ld-wrapper installed there | |
358 | +export LD=/usr/bin/ld | |
359 | +%endif | |
360 | + | |
361 | + | |
362 | +../gcc-%{version}/configure \ | |
363 | + --prefix=%{_prefix} \ | |
364 | + --libdir=%{_libdir} \ | |
365 | + --libexecdir=%{_libexecdir} \ | |
366 | + --mandir=%{_mandir} \ | |
367 | + --infodir=%{_infodir} \ | |
368 | +%if %SUNWbinutils | |
369 | + --with-build-time-tools=/usr/sfw \ | |
370 | + --with-as=/usr/sfw/bin/gas \ | |
371 | + --with-gnu-as \ | |
372 | +%else | |
373 | + --with-as=/usr/gnu/bin/as \ | |
374 | + --with-gnu-as \ | |
375 | +%endif | |
376 | +%if %build_gcc_with_gnu_ld | |
377 | + --with-ld=$LD \ | |
378 | + --with-gnu-ld \ | |
379 | +%else | |
380 | + --with-ld=$LD \ | |
381 | + --without-gnu-ld \ | |
382 | +%endif | |
383 | + --enable-languages=c,c++,fortran,objc \ | |
384 | + --enable-shared \ | |
385 | + --disable-static \ | |
386 | + --enable-decimal-float \ | |
387 | +%if %SFEgmp | |
388 | + --with-gmp=%{SFEgmpbasedir} \ | |
389 | +%else | |
390 | + --with-gmp_include=%{_basedir}/include/gmp \ | |
391 | +%endif | |
392 | +%if %SFEmpfr | |
393 | + --with-mpfr=%{SFEmpfrbasedir} \ | |
394 | +%else | |
395 | + --with-mpfr_include=%{_basedir}/include/mpfr \ | |
396 | +%endif | |
397 | +%if %SFElibmpc | |
398 | + --with-mpc=%{SFElibmpcbasedir} \ | |
399 | +%else | |
400 | + --with-mpc_include=%{_basedir}/include \ | |
401 | +%endif | |
402 | + $nlsopt | |
403 | + | |
404 | +gmake -j$CPUS bootstrap-lean \ | |
405 | + BOOT_CFLAGS="$BOOT_CFLAGS" \ | |
406 | + CFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" \ | |
407 | + CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" | |
408 | + | |
409 | + | |
410 | +%install | |
411 | +rm -rf $RPM_BUILD_ROOT | |
412 | + | |
413 | +cd gcc | |
414 | +gmake install DESTDIR=$RPM_BUILD_ROOT | |
415 | + | |
416 | +cd $RPM_BUILD_ROOT%{_prefix} | |
417 | +ln -s share/man man | |
418 | + | |
419 | +rm -f $RPM_BUILD_ROOT%{_infodir}/dir | |
420 | + | |
421 | +%if %build_l10n | |
422 | +%else | |
423 | +# REMOVE l10n FILES | |
424 | +rm -rf $RPM_BUILD_ROOT%{_datadir}/locale | |
425 | +%endif | |
426 | + | |
427 | +#link runtime libs, for compatibility | |
428 | +#note: links only "basename_of_lib", then "major"-number version libs | |
429 | +#leaves out "minor" and "micro" version libs, they are normally not | |
430 | +#to be linked by userland binaries (runtime linking, see output of "ldd binaryname") | |
431 | + | |
432 | +# remove trailing slash, change to "../" and remove trailing slash again | |
433 | +# OFFSET=$( echo $SYMLINKTARGET | sed -e 's?/$??' -e 's?\w*/?../?g' -e 's?\w*$??' ) | |
434 | + | |
435 | +for SYMLINKTARGET in %{gccsymlinks} | |
436 | +do | |
437 | + # make from /usr/gcc this offset ../../ | |
438 | + OFFSET=$( echo "$SYMLINKTARGET" | sed -e 's?/$??' -e 's?\w*/?../?g' -e 's?\w*$??' -e 's?/$??' ) | |
439 | + # with CWD /usr/gcc/lib, an example is ../../gcc/%major_minor/lib/libgcc_s.so.1 | |
440 | + mkdir -p $RPM_BUILD_ROOT/$SYMLINKTARGET/lib | |
441 | + cd $RPM_BUILD_ROOT/$SYMLINKTARGET/lib | |
442 | + for filepath in lib/libgcc_s.so.1 lib/libgcc_s.so lib/libgfortran.so.3 lib/libgfortran.so lib/libgomp.so.1 lib/libgomp.so lib/libobjc_gc.so.2 lib/libobjc_gc.so lib/libobjc.so.2 lib/libobjc.so lib/libssp.so.0 lib/libssp.so lib/libstdc++.so.6 lib/libstdc++.so lib/libquadmath.so lib/libquadmath.so.0 | |
443 | + do | |
444 | + [ -r $OFFSET/gcc/%major_minor/$filepath ] && ln -s $OFFSET/gcc/%major_minor/$filepath | |
445 | + done #for file | |
446 | +done #for SYMLINKTARGET | |
447 | + | |
448 | +#link arch runtime libs for compatibility | |
449 | +%ifarch amd64 sparcv9 | |
450 | +for SYMLINKTARGET in %{gccsymlinks} | |
451 | +do | |
452 | + # make from /usr/gcc this offset ../../ | |
453 | + OFFSET=$( echo "$SYMLINKTARGET" | sed -e 's?/$??' -e 's?\w*/?../?g' -e 's?\w*$??' -e 's?/$??' ) | |
454 | + # with CWD /usr/gcc/lib, an example is ../../gcc/%major_minor/lib/libgcc_s.so.1 | |
455 | + mkdir -p $RPM_BUILD_ROOT/$SYMLINKTARGET/lib/%{_arch64} | |
456 | + cd $RPM_BUILD_ROOT/$SYMLINKTARGET/lib/%{_arch64} | |
457 | + for filepath in lib/%{_arch64}/libgcc_s.so.1 lib/%{_arch64}/libgcc_s.so lib/%{_arch64}/libgfortran.so.3 lib/%{_arch64}/libgfortran.so lib/%{_arch64}/libgomp.so.1 lib/%{_arch64}/libgomp.so lib/%{_arch64}/libobjc.so.2 lib/%{_arch64}/libobjc.so lib/%{_arch64}/libssp.so.0 lib/%{_arch64}/libssp.so lib/%{_arch64}/libstdc++.so.6 lib/%{_arch64}/libstdc++.so lib/%{_arch64}/libquadmath.so lib/%{_arch64}/libquadmath.so.0 | |
458 | + do | |
459 | + #note add one ../ for %{_arch64} | |
460 | + [ -r $OFFSET/../gcc/%major_minor/$filepath ] && ln -s $OFFSET/../gcc/%major_minor/$filepath | |
461 | + done #for file | |
462 | +done #for SYMLINKTARGET | |
463 | +%endif | |
464 | + | |
465 | +for SYMLINKTARGET in %{gccsymlinks} | |
466 | +do | |
467 | + # make from /usr/gcc this offset ../../ | |
468 | + OFFSET=$( echo "$SYMLINKTARGET" | sed -e 's?/$??' -e 's?\w*/?../?g' -e 's?\w*$??' -e 's?/$??' ) | |
469 | + # with CWD /usr/gcc/lib, an example is ../../gcc/%major_minor/lib/libgcc_s.so.1 | |
470 | + mkdir -p $RPM_BUILD_ROOT/$SYMLINKTARGET/bin | |
471 | + cd $RPM_BUILD_ROOT/$SYMLINKTARGET/bin | |
472 | +# leave out sfw gcc 3.x.x uses this name already ln -s ../../gcc/%major_minor/bin/cpp | |
473 | + for filepath in bin/c++ bin/g++ bin/gcc bin/gcov bin/gfortran | |
474 | + do | |
475 | + [ -r $OFFSET/gcc/%major_minor/$filepath ] && ln -s $OFFSET/gcc/%major_minor/$filepath | |
476 | + done #for file | |
477 | +done #for SYMLINKTARGET | |
478 | + | |
479 | +rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.a | |
480 | +rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.la | |
481 | +%ifarch amd64 sparcv9 | |
482 | +rm -f $RPM_BUILD_ROOT%{_libdir}/%{_arch64}/lib*.a | |
483 | +rm -f $RPM_BUILD_ROOT%{_libdir}/%{_arch64}/lib*.la | |
484 | +%endif | |
485 | + | |
486 | + | |
487 | +%clean | |
488 | +rm -rf $RPM_BUILD_ROOT | |
489 | + | |
490 | +%post -n SFEgcc | |
491 | +( echo 'PATH=/usr/bin:/usr/sfw/bin; export PATH' ; | |
492 | + echo 'infos="'; | |
493 | + echo 'gcc.info cpp.info gccint.info cppinternals.info gccinstall.info gfortran.info' ; | |
494 | + echo '"'; | |
495 | + echo 'retval=0'; | |
496 | + echo 'for info in $infos; do'; | |
497 | + echo ' install-info --info-dir=%{_infodir} %{_infodir}/$info || retval=1'; | |
498 | + echo 'done'; | |
499 | + echo 'exit $retval' ) | $PKG_INSTALL_ROOT/usr/lib/postrun -b -c SFE | |
500 | + | |
501 | +%preun -n SFEgcc | |
502 | +( echo 'PATH=/usr/bin:/usr/sfw/bin; export PATH' ; | |
503 | + echo 'infos="'; | |
504 | + echo 'gcc.info cpp.info gccint.info cppinternals.info gccinstall.info gfortran.info' ; | |
505 | + echo '"'; | |
506 | + echo 'for info in $infos; do'; | |
507 | + echo ' install-info --info-dir=%{_infodir} --delete %{_infodir}/$info'; | |
508 | + echo 'done'; | |
509 | + echo 'exit 0' ) | $PKG_INSTALL_ROOT/usr/lib/postrun -b -c SFE | |
510 | + | |
511 | + | |
512 | + | |
513 | +#SFEgcc-%{majorminornumber}, other packages see below | |
514 | + | |
515 | +%files -n SFEgcc-%{majorminornumber} | |
516 | +%defattr (-, root, bin) | |
517 | +%dir %attr (0755, root, bin) %{_prefix} | |
518 | +%{_prefix}/man | |
519 | +%dir %attr (0755, root, bin) %{_bindir} | |
520 | +%{_bindir}/* | |
521 | +%dir %attr (0755, root, bin) %{_libdir} | |
522 | +%{_libdir}/gcc | |
523 | +%dir %attr (0755, root, sys) %{_datadir} | |
524 | +%dir %attr (0755, root, bin) %{_mandir} | |
525 | +%dir %attr (0755, root, bin) %{_mandir}/man1 | |
526 | +%{_mandir}/man1/*.1 | |
527 | +%dir %attr (0755, root, bin) %{_mandir}/man7 | |
528 | +%{_mandir}/man7/*.7 | |
529 | +%{_infodir} | |
530 | +%{_includedir} | |
531 | + | |
532 | +%dir %attr (0755, root, sys) %{_datadir}/gcc-%{version} | |
533 | +%dir %attr (0755, root, sys) %{_datadir}/gcc-%{version}/python | |
534 | +%dir %attr (0755, root, sys) %{_datadir}/gcc-%{version}/python/libstdcxx | |
535 | +%dir %attr (0755, root, sys) %{_datadir}/gcc-%{version}/python/libstdcxx/v6 | |
536 | +%{_datadir}/gcc-%{version}/python/libstdcxx/v6/printers.py | |
537 | +%{_datadir}/gcc-%{version}/python/libstdcxx/v6/__init__.py | |
538 | +%{_datadir}/gcc-%{version}/python/libstdcxx/__init__.py | |
539 | + | |
540 | + | |
541 | +%files -n SFEgccruntime-%{majorminornumber} | |
542 | +%defattr (-, root, bin) | |
543 | +%dir %attr (0755, root, bin) %{_prefix} | |
544 | +%dir %attr (0755, root, bin) %{_libdir} | |
545 | +%{_libdir}/lib*.so* | |
546 | +%{_libdir}/lib*.spec | |
547 | +%ifarch amd64 sparcv9 i386 | |
548 | +%dir %attr (0755, root, bin) %{_libdir}/%{_arch64} | |
549 | +%{_libdir}/%{_arch64}/lib*.so* | |
550 | +%{_libdir}/%{_arch64}/lib*.spec | |
551 | +%endif | |
552 | + | |
553 | +%if %symlinktarget1enabled | |
554 | +%files -n SFEgcc | |
555 | +%defattr (-, root, bin) | |
556 | +%{symlinktarget1path}/bin | |
557 | +%files -n SFEgccruntime | |
558 | +%defattr (-, root, bin) | |
559 | +%{symlinktarget1path}/lib | |
560 | +%endif | |
561 | + | |
562 | +%if %symlinktarget2enabled | |
563 | +%files -n SFEgcc | |
564 | +%defattr (-, root, bin) | |
565 | +%{symlinktarget2path}/bin | |
566 | +%files -n SFEgccruntime | |
567 | +%defattr (-, root, bin) | |
568 | +%{symlinktarget2path}/lib | |
569 | +%endif | |
570 | + | |
571 | +%if %symlinktarget3enabled | |
572 | +%files -n SFEgcc | |
573 | +%defattr (-, root, bin) | |
574 | +%{symlinktarget3path}/bin | |
575 | +%files -n SFEgccruntime | |
576 | +%defattr (-, root, bin) | |
577 | +%{symlinktarget3path}/lib | |
578 | +%endif | |
579 | + | |
580 | + | |
581 | +%if %build_l10n | |
582 | +%files -n SFEgcc-l10n | |
583 | +%defattr (-, root, bin) | |
584 | +%dir %attr (0755, root, bin) %{_prefix} | |
585 | +%dir %attr (0755, root, sys) %{_datadir} | |
586 | +%attr (-, root, other) %{_datadir}/locale | |
587 | +%endif | |
588 | + | |
589 | +%changelog | |
590 | +* Wed Jun 13 2012 - Osamu Tabata<cantimerny.g@gmail.com> | |
591 | +- Sipport for Solaris11 | |
592 | +* Sat Mar 03 2012 - Milan Jurik | |
593 | +- bump to 4.6.3 | |
594 | +* Wed Dec 23 2011 - Milan Jurik | |
595 | +- add libquadmath symlinks | |
596 | +* Sun Dec 04 2011 - Milan Jurik | |
597 | +- patch10 for spawn issue | |
598 | +* Sat Oct 29 2011 - Milan Jurik | |
599 | +- bump to 4.6.2 | |
600 | +* Thr Oct 13 2011 - Thomas Wagner | |
601 | +- add to LDFLAGS %gnu_lib_path or cc1 can't find libs in bootstrapping the compiler | |
602 | +- remove typo in LDFLAGS_FOR_TARGET="%_ldflags" | |
603 | +* Wed Oct 11 2011 - Thomas Wagner | |
604 | +- add IPS_package_names | |
605 | +- little cleaning up: remove development comments | |
606 | +* Tue Sep 27 2011 - Thomas Wagner | |
607 | +- add version control form outside, so you can build and version | |
608 | + (if the patches apply cleanly). Note: only one micro version at | |
609 | + a time is supported by the naming schema: 4.6.1 -> SFEgcc-46 | |
610 | + 4.5.3 -> SFEgcc-45, and not at the same time 4.5.2 -> SFEgcc-45. | |
611 | + Always send to the repo last, what then should be the version | |
612 | + providing the symlinks in /usr/gnu/<bin|lib> | |
613 | + e.g. first 4.5.3 then second 4.6.1 -> you get SFEgcc symlinks to 4.6.1 version | |
614 | +* Thu Sep 22 2011 - Thomas Wagner | |
615 | +- automate symlinks to be created in for instance /usr/gnu/bin or /usr/gcc/bin | |
616 | + as requested at compile time by the configure line --enable-languages=c,c++,fortran,objc | |
617 | + This works automaticly and independent of number of languages enabled | |
618 | +- reverse package odering, make filename match package SFEgcc, this fixes --autodeps | |
619 | +##TODO## review/verify documentatioin in patch gcc-03-gnulib.diff | |
620 | +- document patch gcc-03-gnulib.diff backgrounds | |
621 | +##TODO## review/verify documentatioin in patch gcc-05-LINK_LIBGCC_SPEC.diff | |
622 | +- add patch gcc-05-LINK_LIBGCC_SPEC.diff (inspired by pkgsrc's gcc variant!) | |
623 | + to make gcc always know where the gcc compiler runtime lives. Needed to get | |
624 | + rid of excessive number of directories hardcoded in -R (patch gcc-03-gnulib.diff | |
625 | + new version removed them, resultingin libgcc_s.so and libstdc++.so.6 not always | |
626 | + found). Only downside: if you want a user library then really *do* specify one | |
627 | + -R/usr/gnu/lib for instance. Else find a clean binary with the correct runpath | |
628 | +- move %gnu_lib_path over from LDFLAGS + LD_OPTIONS to BOOT_CFLAGS, removes | |
629 | + excessive number of directories in runpath of binaries, but still finds iconv, | |
630 | + mpfr, gmp, mpc in /usr/gnu/lib at compiler bootstrap and when using the compiler | |
631 | + itself. | |
632 | +- second draft of a compile time selectable set of target directories where | |
633 | + gcc symlinks for compiler and runtime are support to going to. Current | |
634 | + simplification is that all symlinks go into a single target package SFEgcc | |
635 | + respectively SFEgccruntime. | |
636 | +- avoid slipping in gnu-ld with the new consolidation of /usr/sfw/bin/<ld|*> and/or | |
637 | + /usr/ccs/bin over to /usr/bin which might be accidentially be the first in PATH. | |
638 | + Set LD=`which ld-wrapper` -->> NOTE changd again later | |
639 | +- it's actually better to really specify LD=/usr/bin/ld then specifying | |
640 | + eventually unavailable ld-wrapper script (in case CBE is not installed) | |
641 | +- make extra matapackages available to be set as "Requires:" in consumer packages | |
642 | + and add packages which version number in theyr names that can will be pulled | |
643 | + in by the metapackages or consumer packages. In selected special cases | |
644 | + programs can "Requires:" the versioned SFEgccruntime-46 package name. | |
645 | +- first draft patch5 gcc-05-LINK_LIBGCC_SPEC-sparcv9.diff for sparcv9 - needs | |
646 | + testing, please give feedback | |
647 | +* Tue Aug 16 2011 - Thomas Wagner | |
648 | +- first version of reworked gcc-03-gnulib.diff where user can | |
649 | + define libdirs everywhere in RUNPATH, e.g. /usr/g++/lib:/usr/gnu/lib:/usr/lib | |
650 | + please test results with dump -Lv /usr/g++/lib/libQtNetwork.so | grep RUNPATH | |
651 | +* Sat Jul 23 2011 - Guido Berhoerster <gber@openindiana.org> | |
652 | +- added License and SUNW_Copyright tags | |
653 | +* Sun Jul 17 2011 - Alex Viskovatoff | |
654 | +- do not hardcode <majornumber>.<minornumber> | |
655 | +* Sun Jul 17 2011 - Milan Jurik | |
656 | +- bump to 4.6.1 | |
657 | +* Tue May 17 2011 - Milan Jurik | |
658 | +- bump to 4.5.3 | |
659 | +* Thu Mar 17 2011 - Thomas Wagner | |
660 | +- temporarily force SFEgmp SFEmpfr to have pkgtool --autodeps working in correct build-order | |
661 | +* Wed Mar 16 2011 - Thomas Wagner | |
662 | +- symlinks did not go into package, added %{_gnu_bindir}/* to %files SFEgcc | |
663 | +* Tue Mar 15 2011 - Thomas Wagner | |
664 | +- add missing %define _gnu_bindir %{_basedir}/gnu/bin | |
665 | +* Sat Mar 12 2011 - Thomas Wagner | |
666 | +- make symlinks to get SFEgcc.spec version 4.x.x to have the gcc 4.x.x | |
667 | + default compiler accessible by /usr/gnu/bin/gcc and /usr/gnu/bin/g++ | |
668 | + and /usr/gnu/bin/gfortran ... | |
669 | +* Fri Mar 04 2011 - Milan Jurik | |
670 | +- RUNPATH enforced to contain /usr/gnu/lib, libs symlinked to /usr/gnu/lib | |
671 | +* Wed Mar 02 2011 - Milan Jurik | |
672 | +- fix NLS build, need to fix linker for g++ still | |
673 | +* Tue Mar 01 2011 - Milan Jurik | |
674 | +- move to /usr/gcc/4.5 | |
675 | +* Tue Feb 08 2011 - Thomas Wagner | |
676 | +- interim solution for very old gcc-4.3.3, derived from experimental/SFEgcc-4.5.2.spec | |
677 | +* Sun Jan 30 2011 - Thomas Wagner | |
678 | +- bump to 4.5.2 | |
679 | +* Sat Oct 23 2010 - Thomas Wagner | |
680 | +- bump to 4.5.1 | |
681 | +- require SFEgmp / SFEmpfr (new version) for builds below 126. may add | |
682 | + upper limit later if OS contains required version as SUNWgnu-mp / SUNWgnu-mpfr | |
683 | +- finetune BASEDIR detection (SVR4 works, IPS lacks BASEDIR -> emulate) | |
684 | +- merge new logic for (Build)Requires from SFEgcc version 4.4.4 to 4.5.0 spec file | |
685 | +- start with osbuild >= 146 to use gnu ld for linking (build_gcc_with_gnu_ld) | |
686 | + because looks like linker error | |
687 | +- collect python files from directory based on gcc %version | |
688 | +- make spec bailout if the symlink /usr/gnu/bin/cc exists | |
689 | +- add (Build)Requires SFElibmpc.spec (SFEMpc might retire, naming) | |
690 | +- add new python files to %files | |
691 | +- add experimental --with-SFEbinutils to force using more fresh SFEbinutils | |
692 | +- don't hard-code ld-wrapper location, use instead `which ld-wrapper` | |
693 | +* Mon Jul 28 2010 - Thomas Wagner | |
694 | +- bump to 4.5.0 | |
695 | +* Wed Aug 18 2010 - Thomas Wagner | |
696 | +- try with defaults to SUNWbinutils SUNWgnu-mp SUNWgnu-mpfr | |
697 | + this might break gcc compile on older osbuild versions | |
698 | +- stop and exit 1 if the link /usr/gnu/bin/cc exists. Give user hint to | |
699 | + remove this problematic symlink of gcc to cc | |
700 | +- search ld-wrapper from PATH (e.g. /opt/jdsbld/bin or /opt/dtbld/bin) | |
701 | +- workaround IPS bug that ever prints BASEdir as "/" even if it presents | |
702 | + "/usr/gnu" to have configure find SFEgmp and SFEmpfr in case it should | |
703 | +* Sun Jun 6 2010 - Thomas Wagner | |
704 | +- bump to 4.4.4 | |
705 | +- add switches to force SFEgmp and SFEmpfr | |
706 | +- experimenting with gcc related CFLAGS/LDFLAGS | |
707 | +* Fri Feb 05 2010 - Albert Lee <trisk@opensolaris.org> | |
708 | +- Fix bootstrap compiler options | |
709 | +* Sun Aug 09 2009 - Thomas Wagner | |
710 | +- BuildRequires: SUNWbash | |
711 | +* Sat Mar 14 2009 - Thomas Wagner | |
712 | +- change logic to require SFEgmp/SFEmpfr only if *no* SUNWgnu-mp/SUNWgnu-mpfr is present (this is on old OS builds) | |
713 | +- make SFEgcc use of new SUNWgnu-mp/SUNWgnu-mpfr (replacement for SFEgmp/SFEmpfr, SFE-versions still work with SFEgcc) | |
714 | +- detect new location of SFEgmp/SFEmpfr now in /usr/gnu and use them only if missing SUNWgnu-mp/SUNWgnu-mpfr | |
715 | +- add (Build)Requires: SFElibiconv(-devel) (thanks to check-deps.pl) | |
716 | +* Sat Feb 21 2009 - Thomas Wagner | |
717 | +- bump to 4.3.3 | |
718 | +- make conditional SFEgmp / SUNWgnu-mp | |
719 | +- make conditional SFEmpfr / SUNWgnu-mpfr | |
720 | +- add extra configure switch if SUNWgnu-mp and/or SUNWgnu-mpfr is used | |
721 | +* Sun Jan 25 2009 - Thomas Wagner | |
722 | +- make default without HANDLE_PRAGMA_PACK_PUSH_POP. switch on with: | |
723 | + --with-handle_pragma_pack_push_pop | |
724 | +* Sat Jan 24 2009 - Thomas Wagner | |
725 | +- add HANDLE_PRAGMA_PACK_PUSH_POP (might help wine) | |
726 | +- bump to 4.2.4, version SFEgcc wit %{version} | |
727 | +* Wed Jan 7 2009 - Thomas Wagner | |
728 | +- add conditional SUNWbinutils/SFEbinutils to SFEgcc package | |
729 | +* Sun Dec 28 2008 - Thomas Wagner | |
730 | +- work around %files section on i386/32-bit not finding %{_arch64} binaries because _arch64 is unset ... _arch64 only set if running 64-bit OS in include/arch64.inc | |
731 | +* Sat Dec 27 2008 - Thomas Wagner | |
732 | +- add conditional SUNWbinutils/SFEbinutils to re-enable build on old OS | |
733 | +- add configure-switch for SUNWbinutils otherwise left over SFEbinutils catched by configure/compile. SUNWbinuils not found otherwise. | |
734 | +* Wed Aug 06 2008 - andras.barna@gmail.com | |
735 | +- change SFEbinutils to SUNWbinutils, defaulting to SUN ld | |
736 | +* Mon Mar 10 2008 - laca@sun.com | |
737 | +- add missing defattr | |
738 | +* Sun Mar 2 2008 - Mark Wright <markwright@internode.on.net> | |
739 | +- Add gcc-01-libtool-rpath.diff patch for a problem where | |
740 | +- the old, modified libtool 1.4 in gcc 4.2.3 drops | |
741 | +- -rpath /usr/gnu/lib when building libstdc++.so.6.0.9. | |
742 | +* Fri Feb 29 2008 - Mark Wright <markwright@internode.on.net> | |
743 | +- Bump to 4.2.3. Remove patch for 32787 as it is upstreamed into gcc 4.2.3. | |
744 | +* Sat Jan 26 2008 - Moinak Ghosh <moinak.ghosh@sun.com> | |
745 | +- Refactor package to have SFEgcc and SFEgccruntime. | |
746 | +* Sun Oct 14 2007 - Mark Wright <markwright@internode.on.net> | |
747 | +- Bump to 4.2.2. | |
748 | +* Wed Aug 15 2007 - Mark Wright <markwright@internode.on.net> | |
749 | +- Change from /usr/ccs/bin/ld to /usr/gnu/bin/ld, this change | |
750 | + requires SFEbinutils built with binutils-01-bug-2495.diff, | |
751 | + binutils-02-ld-m-elf_i386.diff and binutils-03-lib-amd64-ld-so-1.diff. | |
752 | + Add objc to --enable-languages, add --enable-decimal-float. | |
753 | +* Wed Jul 24 2007 - Mark Wright <markwright@internode.on.net> | |
754 | +- Bump to 4.2.1, add patch for gcc bug 32787. | |
755 | +* Wed May 16 2007 - Doug Scott <dougs@truemail.co.th> | |
756 | +- Bump to 4.2.0 | |
757 | +* Tue Mar 20 2007 - Doug Scott <dougs@truemail.co.th> | |
758 | +- Added LD_OPTIONS so libs in /usr/gnu/lib will be found | |
759 | +* Sun Mar 7 2007 - Doug Scott <dougs@truemail.co.th> | |
760 | +- change to use GNU as from SFEbinutils | |
761 | +* Sun Mar 7 2007 - Doug Scott <dougs@truemail.co.th> | |
762 | +- Initial spec |
@@ -0,0 +1,1480 @@ | ||
1 | +GCC is Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, | |
2 | +1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, | |
3 | +2008, 2009, 2010, 2011 Free Software Foundation, Inc. | |
4 | + | |
5 | +GCC is free software; you can redistribute it and/or modify it under | |
6 | +the terms of the GNU General Public License as published by the Free | |
7 | +Software Foundation; either version 3, or (at your option) any later | |
8 | +version. | |
9 | + | |
10 | +GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
11 | +WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
12 | +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
13 | +for more details. | |
14 | + | |
15 | +Files that have exception clauses are licensed under the terms of the | |
16 | +GNU General Public License; either version 3, or (at your option) any | |
17 | +later version. | |
18 | + | |
19 | + | |
20 | + GNU GENERAL PUBLIC LICENSE | |
21 | + Version 3, 29 June 2007 | |
22 | + | |
23 | + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> | |
24 | + Everyone is permitted to copy and distribute verbatim copies | |
25 | + of this license document, but changing it is not allowed. | |
26 | + | |
27 | + Preamble | |
28 | + | |
29 | + The GNU General Public License is a free, copyleft license for | |
30 | +software and other kinds of works. | |
31 | + | |
32 | + The licenses for most software and other practical works are designed | |
33 | +to take away your freedom to share and change the works. By contrast, | |
34 | +the GNU General Public License is intended to guarantee your freedom to | |
35 | +share and change all versions of a program--to make sure it remains free | |
36 | +software for all its users. We, the Free Software Foundation, use the | |
37 | +GNU General Public License for most of our software; it applies also to | |
38 | +any other work released this way by its authors. You can apply it to | |
39 | +your programs, too. | |
40 | + | |
41 | + When we speak of free software, we are referring to freedom, not | |
42 | +price. Our General Public Licenses are designed to make sure that you | |
43 | +have the freedom to distribute copies of free software (and charge for | |
44 | +them if you wish), that you receive source code or can get it if you | |
45 | +want it, that you can change the software or use pieces of it in new | |
46 | +free programs, and that you know you can do these things. | |
47 | + | |
48 | + To protect your rights, we need to prevent others from denying you | |
49 | +these rights or asking you to surrender the rights. Therefore, you have | |
50 | +certain responsibilities if you distribute copies of the software, or if | |
51 | +you modify it: responsibilities to respect the freedom of others. | |
52 | + | |
53 | + For example, if you distribute copies of such a program, whether | |
54 | +gratis or for a fee, you must pass on to the recipients the same | |
55 | +freedoms that you received. You must make sure that they, too, receive | |
56 | +or can get the source code. And you must show them these terms so they | |
57 | +know their rights. | |
58 | + | |
59 | + Developers that use the GNU GPL protect your rights with two steps: | |
60 | +(1) assert copyright on the software, and (2) offer you this License | |
61 | +giving you legal permission to copy, distribute and/or modify it. | |
62 | + | |
63 | + For the developers' and authors' protection, the GPL clearly explains | |
64 | +that there is no warranty for this free software. For both users' and | |
65 | +authors' sake, the GPL requires that modified versions be marked as | |
66 | +changed, so that their problems will not be attributed erroneously to | |
67 | +authors of previous versions. | |
68 | + | |
69 | + Some devices are designed to deny users access to install or run | |
70 | +modified versions of the software inside them, although the manufacturer | |
71 | +can do so. This is fundamentally incompatible with the aim of | |
72 | +protecting users' freedom to change the software. The systematic | |
73 | +pattern of such abuse occurs in the area of products for individuals to | |
74 | +use, which is precisely where it is most unacceptable. Therefore, we | |
75 | +have designed this version of the GPL to prohibit the practice for those | |
76 | +products. If such problems arise substantially in other domains, we | |
77 | +stand ready to extend this provision to those domains in future versions | |
78 | +of the GPL, as needed to protect the freedom of users. | |
79 | + | |
80 | + Finally, every program is threatened constantly by software patents. | |
81 | +States should not allow patents to restrict development and use of | |
82 | +software on general-purpose computers, but in those that do, we wish to | |
83 | +avoid the special danger that patents applied to a free program could | |
84 | +make it effectively proprietary. To prevent this, the GPL assures that | |
85 | +patents cannot be used to render the program non-free. | |
86 | + | |
87 | + The precise terms and conditions for copying, distribution and | |
88 | +modification follow. | |
89 | + | |
90 | + TERMS AND CONDITIONS | |
91 | + | |
92 | + 0. Definitions. | |
93 | + | |
94 | + "This License" refers to version 3 of the GNU General Public License. | |
95 | + | |
96 | + "Copyright" also means copyright-like laws that apply to other kinds of | |
97 | +works, such as semiconductor masks. | |
98 | + | |
99 | + "The Program" refers to any copyrightable work licensed under this | |
100 | +License. Each licensee is addressed as "you". "Licensees" and | |
101 | +"recipients" may be individuals or organizations. | |
102 | + | |
103 | + To "modify" a work means to copy from or adapt all or part of the work | |
104 | +in a fashion requiring copyright permission, other than the making of an | |
105 | +exact copy. The resulting work is called a "modified version" of the | |
106 | +earlier work or a work "based on" the earlier work. | |
107 | + | |
108 | + A "covered work" means either the unmodified Program or a work based | |
109 | +on the Program. | |
110 | + | |
111 | + To "propagate" a work means to do anything with it that, without | |
112 | +permission, would make you directly or secondarily liable for | |
113 | +infringement under applicable copyright law, except executing it on a | |
114 | +computer or modifying a private copy. Propagation includes copying, | |
115 | +distribution (with or without modification), making available to the | |
116 | +public, and in some countries other activities as well. | |
117 | + | |
118 | + To "convey" a work means any kind of propagation that enables other | |
119 | +parties to make or receive copies. Mere interaction with a user through | |
120 | +a computer network, with no transfer of a copy, is not conveying. | |
121 | + | |
122 | + An interactive user interface displays "Appropriate Legal Notices" | |
123 | +to the extent that it includes a convenient and prominently visible | |
124 | +feature that (1) displays an appropriate copyright notice, and (2) | |
125 | +tells the user that there is no warranty for the work (except to the | |
126 | +extent that warranties are provided), that licensees may convey the | |
127 | +work under this License, and how to view a copy of this License. If | |
128 | +the interface presents a list of user commands or options, such as a | |
129 | +menu, a prominent item in the list meets this criterion. | |
130 | + | |
131 | + 1. Source Code. | |
132 | + | |
133 | + The "source code" for a work means the preferred form of the work | |
134 | +for making modifications to it. "Object code" means any non-source | |
135 | +form of a work. | |
136 | + | |
137 | + A "Standard Interface" means an interface that either is an official | |
138 | +standard defined by a recognized standards body, or, in the case of | |
139 | +interfaces specified for a particular programming language, one that | |
140 | +is widely used among developers working in that language. | |
141 | + | |
142 | + The "System Libraries" of an executable work include anything, other | |
143 | +than the work as a whole, that (a) is included in the normal form of | |
144 | +packaging a Major Component, but which is not part of that Major | |
145 | +Component, and (b) serves only to enable use of the work with that | |
146 | +Major Component, or to implement a Standard Interface for which an | |
147 | +implementation is available to the public in source code form. A | |
148 | +"Major Component", in this context, means a major essential component | |
149 | +(kernel, window system, and so on) of the specific operating system | |
150 | +(if any) on which the executable work runs, or a compiler used to | |
151 | +produce the work, or an object code interpreter used to run it. | |
152 | + | |
153 | + The "Corresponding Source" for a work in object code form means all | |
154 | +the source code needed to generate, install, and (for an executable | |
155 | +work) run the object code and to modify the work, including scripts to | |
156 | +control those activities. However, it does not include the work's | |
157 | +System Libraries, or general-purpose tools or generally available free | |
158 | +programs which are used unmodified in performing those activities but | |
159 | +which are not part of the work. For example, Corresponding Source | |
160 | +includes interface definition files associated with source files for | |
161 | +the work, and the source code for shared libraries and dynamically | |
162 | +linked subprograms that the work is specifically designed to require, | |
163 | +such as by intimate data communication or control flow between those | |
164 | +subprograms and other parts of the work. | |
165 | + | |
166 | + The Corresponding Source need not include anything that users | |
167 | +can regenerate automatically from other parts of the Corresponding | |
168 | +Source. | |
169 | + | |
170 | + The Corresponding Source for a work in source code form is that | |
171 | +same work. | |
172 | + | |
173 | + 2. Basic Permissions. | |
174 | + | |
175 | + All rights granted under this License are granted for the term of | |
176 | +copyright on the Program, and are irrevocable provided the stated | |
177 | +conditions are met. This License explicitly affirms your unlimited | |
178 | +permission to run the unmodified Program. The output from running a | |
179 | +covered work is covered by this License only if the output, given its | |
180 | +content, constitutes a covered work. This License acknowledges your | |
181 | +rights of fair use or other equivalent, as provided by copyright law. | |
182 | + | |
183 | + You may make, run and propagate covered works that you do not | |
184 | +convey, without conditions so long as your license otherwise remains | |
185 | +in force. You may convey covered works to others for the sole purpose | |
186 | +of having them make modifications exclusively for you, or provide you | |
187 | +with facilities for running those works, provided that you comply with | |
188 | +the terms of this License in conveying all material for which you do | |
189 | +not control copyright. Those thus making or running the covered works | |
190 | +for you must do so exclusively on your behalf, under your direction | |
191 | +and control, on terms that prohibit them from making any copies of | |
192 | +your copyrighted material outside their relationship with you. | |
193 | + | |
194 | + Conveying under any other circumstances is permitted solely under | |
195 | +the conditions stated below. Sublicensing is not allowed; section 10 | |
196 | +makes it unnecessary. | |
197 | + | |
198 | + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. | |
199 | + | |
200 | + No covered work shall be deemed part of an effective technological | |
201 | +measure under any applicable law fulfilling obligations under article | |
202 | +11 of the WIPO copyright treaty adopted on 20 December 1996, or | |
203 | +similar laws prohibiting or restricting circumvention of such | |
204 | +measures. | |
205 | + | |
206 | + When you convey a covered work, you waive any legal power to forbid | |
207 | +circumvention of technological measures to the extent such circumvention | |
208 | +is effected by exercising rights under this License with respect to | |
209 | +the covered work, and you disclaim any intention to limit operation or | |
210 | +modification of the work as a means of enforcing, against the work's | |
211 | +users, your or third parties' legal rights to forbid circumvention of | |
212 | +technological measures. | |
213 | + | |
214 | + 4. Conveying Verbatim Copies. | |
215 | + | |
216 | + You may convey verbatim copies of the Program's source code as you | |
217 | +receive it, in any medium, provided that you conspicuously and | |
218 | +appropriately publish on each copy an appropriate copyright notice; | |
219 | +keep intact all notices stating that this License and any | |
220 | +non-permissive terms added in accord with section 7 apply to the code; | |
221 | +keep intact all notices of the absence of any warranty; and give all | |
222 | +recipients a copy of this License along with the Program. | |
223 | + | |
224 | + You may charge any price or no price for each copy that you convey, | |
225 | +and you may offer support or warranty protection for a fee. | |
226 | + | |
227 | + 5. Conveying Modified Source Versions. | |
228 | + | |
229 | + You may convey a work based on the Program, or the modifications to | |
230 | +produce it from the Program, in the form of source code under the | |
231 | +terms of section 4, provided that you also meet all of these conditions: | |
232 | + | |
233 | + a) The work must carry prominent notices stating that you modified | |
234 | + it, and giving a relevant date. | |
235 | + | |
236 | + b) The work must carry prominent notices stating that it is | |
237 | + released under this License and any conditions added under section | |
238 | + 7. This requirement modifies the requirement in section 4 to | |
239 | + "keep intact all notices". | |
240 | + | |
241 | + c) You must license the entire work, as a whole, under this | |
242 | + License to anyone who comes into possession of a copy. This | |
243 | + License will therefore apply, along with any applicable section 7 | |
244 | + additional terms, to the whole of the work, and all its parts, | |
245 | + regardless of how they are packaged. This License gives no | |
246 | + permission to license the work in any other way, but it does not | |
247 | + invalidate such permission if you have separately received it. | |
248 | + | |
249 | + d) If the work has interactive user interfaces, each must display | |
250 | + Appropriate Legal Notices; however, if the Program has interactive | |
251 | + interfaces that do not display Appropriate Legal Notices, your | |
252 | + work need not make them do so. | |
253 | + | |
254 | + A compilation of a covered work with other separate and independent | |
255 | +works, which are not by their nature extensions of the covered work, | |
256 | +and which are not combined with it such as to form a larger program, | |
257 | +in or on a volume of a storage or distribution medium, is called an | |
258 | +"aggregate" if the compilation and its resulting copyright are not | |
259 | +used to limit the access or legal rights of the compilation's users | |
260 | +beyond what the individual works permit. Inclusion of a covered work | |
261 | +in an aggregate does not cause this License to apply to the other | |
262 | +parts of the aggregate. | |
263 | + | |
264 | + 6. Conveying Non-Source Forms. | |
265 | + | |
266 | + You may convey a covered work in object code form under the terms | |
267 | +of sections 4 and 5, provided that you also convey the | |
268 | +machine-readable Corresponding Source under the terms of this License, | |
269 | +in one of these ways: | |
270 | + | |
271 | + a) Convey the object code in, or embodied in, a physical product | |
272 | + (including a physical distribution medium), accompanied by the | |
273 | + Corresponding Source fixed on a durable physical medium | |
274 | + customarily used for software interchange. | |
275 | + | |
276 | + b) Convey the object code in, or embodied in, a physical product | |
277 | + (including a physical distribution medium), accompanied by a | |
278 | + written offer, valid for at least three years and valid for as | |
279 | + long as you offer spare parts or customer support for that product | |
280 | + model, to give anyone who possesses the object code either (1) a | |
281 | + copy of the Corresponding Source for all the software in the | |
282 | + product that is covered by this License, on a durable physical | |
283 | + medium customarily used for software interchange, for a price no | |
284 | + more than your reasonable cost of physically performing this | |
285 | + conveying of source, or (2) access to copy the | |
286 | + Corresponding Source from a network server at no charge. | |
287 | + | |
288 | + c) Convey individual copies of the object code with a copy of the | |
289 | + written offer to provide the Corresponding Source. This | |
290 | + alternative is allowed only occasionally and noncommercially, and | |
291 | + only if you received the object code with such an offer, in accord | |
292 | + with subsection 6b. | |
293 | + | |
294 | + d) Convey the object code by offering access from a designated | |
295 | + place (gratis or for a charge), and offer equivalent access to the | |
296 | + Corresponding Source in the same way through the same place at no | |
297 | + further charge. You need not require recipients to copy the | |
298 | + Corresponding Source along with the object code. If the place to | |
299 | + copy the object code is a network server, the Corresponding Source | |
300 | + may be on a different server (operated by you or a third party) | |
301 | + that supports equivalent copying facilities, provided you maintain | |
302 | + clear directions next to the object code saying where to find the | |
303 | + Corresponding Source. Regardless of what server hosts the | |
304 | + Corresponding Source, you remain obligated to ensure that it is | |
305 | + available for as long as needed to satisfy these requirements. | |
306 | + | |
307 | + e) Convey the object code using peer-to-peer transmission, provided | |
308 | + you inform other peers where the object code and Corresponding | |
309 | + Source of the work are being offered to the general public at no | |
310 | + charge under subsection 6d. | |
311 | + | |
312 | + A separable portion of the object code, whose source code is excluded | |
313 | +from the Corresponding Source as a System Library, need not be | |
314 | +included in conveying the object code work. | |
315 | + | |
316 | + A "User Product" is either (1) a "consumer product", which means any | |
317 | +tangible personal property which is normally used for personal, family, | |
318 | +or household purposes, or (2) anything designed or sold for incorporation | |
319 | +into a dwelling. In determining whether a product is a consumer product, | |
320 | +doubtful cases shall be resolved in favor of coverage. For a particular | |
321 | +product received by a particular user, "normally used" refers to a | |
322 | +typical or common use of that class of product, regardless of the status | |
323 | +of the particular user or of the way in which the particular user | |
324 | +actually uses, or expects or is expected to use, the product. A product | |
325 | +is a consumer product regardless of whether the product has substantial | |
326 | +commercial, industrial or non-consumer uses, unless such uses represent | |
327 | +the only significant mode of use of the product. | |
328 | + | |
329 | + "Installation Information" for a User Product means any methods, | |
330 | +procedures, authorization keys, or other information required to install | |
331 | +and execute modified versions of a covered work in that User Product from | |
332 | +a modified version of its Corresponding Source. The information must | |
333 | +suffice to ensure that the continued functioning of the modified object | |
334 | +code is in no case prevented or interfered with solely because | |
335 | +modification has been made. | |
336 | + | |
337 | + If you convey an object code work under this section in, or with, or | |
338 | +specifically for use in, a User Product, and the conveying occurs as | |
339 | +part of a transaction in which the right of possession and use of the | |
340 | +User Product is transferred to the recipient in perpetuity or for a | |
341 | +fixed term (regardless of how the transaction is characterized), the | |
342 | +Corresponding Source conveyed under this section must be accompanied | |
343 | +by the Installation Information. But this requirement does not apply | |
344 | +if neither you nor any third party retains the ability to install | |
345 | +modified object code on the User Product (for example, the work has | |
346 | +been installed in ROM). | |
347 | + | |
348 | + The requirement to provide Installation Information does not include a | |
349 | +requirement to continue to provide support service, warranty, or updates | |
350 | +for a work that has been modified or installed by the recipient, or for | |
351 | +the User Product in which it has been modified or installed. Access to a | |
352 | +network may be denied when the modification itself materially and | |
353 | +adversely affects the operation of the network or violates the rules and | |
354 | +protocols for communication across the network. | |
355 | + | |
356 | + Corresponding Source conveyed, and Installation Information provided, | |
357 | +in accord with this section must be in a format that is publicly | |
358 | +documented (and with an implementation available to the public in | |
359 | +source code form), and must require no special password or key for | |
360 | +unpacking, reading or copying. | |
361 | + | |
362 | + 7. Additional Terms. | |
363 | + | |
364 | + "Additional permissions" are terms that supplement the terms of this | |
365 | +License by making exceptions from one or more of its conditions. | |
366 | +Additional permissions that are applicable to the entire Program shall | |
367 | +be treated as though they were included in this License, to the extent | |
368 | +that they are valid under applicable law. If additional permissions | |
369 | +apply only to part of the Program, that part may be used separately | |
370 | +under those permissions, but the entire Program remains governed by | |
371 | +this License without regard to the additional permissions. | |
372 | + | |
373 | + When you convey a copy of a covered work, you may at your option | |
374 | +remove any additional permissions from that copy, or from any part of | |
375 | +it. (Additional permissions may be written to require their own | |
376 | +removal in certain cases when you modify the work.) You may place | |
377 | +additional permissions on material, added by you to a covered work, | |
378 | +for which you have or can give appropriate copyright permission. | |
379 | + | |
380 | + Notwithstanding any other provision of this License, for material you | |
381 | +add to a covered work, you may (if authorized by the copyright holders of | |
382 | +that material) supplement the terms of this License with terms: | |
383 | + | |
384 | + a) Disclaiming warranty or limiting liability differently from the | |
385 | + terms of sections 15 and 16 of this License; or | |
386 | + | |
387 | + b) Requiring preservation of specified reasonable legal notices or | |
388 | + author attributions in that material or in the Appropriate Legal | |
389 | + Notices displayed by works containing it; or | |
390 | + | |
391 | + c) Prohibiting misrepresentation of the origin of that material, or | |
392 | + requiring that modified versions of such material be marked in | |
393 | + reasonable ways as different from the original version; or | |
394 | + | |
395 | + d) Limiting the use for publicity purposes of names of licensors or | |
396 | + authors of the material; or | |
397 | + | |
398 | + e) Declining to grant rights under trademark law for use of some | |
399 | + trade names, trademarks, or service marks; or | |
400 | + | |
401 | + f) Requiring indemnification of licensors and authors of that | |
402 | + material by anyone who conveys the material (or modified versions of | |
403 | + it) with contractual assumptions of liability to the recipient, for | |
404 | + any liability that these contractual assumptions directly impose on | |
405 | + those licensors and authors. | |
406 | + | |
407 | + All other non-permissive additional terms are considered "further | |
408 | +restrictions" within the meaning of section 10. If the Program as you | |
409 | +received it, or any part of it, contains a notice stating that it is | |
410 | +governed by this License along with a term that is a further | |
411 | +restriction, you may remove that term. If a license document contains | |
412 | +a further restriction but permits relicensing or conveying under this | |
413 | +License, you may add to a covered work material governed by the terms | |
414 | +of that license document, provided that the further restriction does | |
415 | +not survive such relicensing or conveying. | |
416 | + | |
417 | + If you add terms to a covered work in accord with this section, you | |
418 | +must place, in the relevant source files, a statement of the | |
419 | +additional terms that apply to those files, or a notice indicating | |
420 | +where to find the applicable terms. | |
421 | + | |
422 | + Additional terms, permissive or non-permissive, may be stated in the | |
423 | +form of a separately written license, or stated as exceptions; | |
424 | +the above requirements apply either way. | |
425 | + | |
426 | + 8. Termination. | |
427 | + | |
428 | + You may not propagate or modify a covered work except as expressly | |
429 | +provided under this License. Any attempt otherwise to propagate or | |
430 | +modify it is void, and will automatically terminate your rights under | |
431 | +this License (including any patent licenses granted under the third | |
432 | +paragraph of section 11). | |
433 | + | |
434 | + However, if you cease all violation of this License, then your | |
435 | +license from a particular copyright holder is reinstated (a) | |
436 | +provisionally, unless and until the copyright holder explicitly and | |
437 | +finally terminates your license, and (b) permanently, if the copyright | |
438 | +holder fails to notify you of the violation by some reasonable means | |
439 | +prior to 60 days after the cessation. | |
440 | + | |
441 | + Moreover, your license from a particular copyright holder is | |
442 | +reinstated permanently if the copyright holder notifies you of the | |
443 | +violation by some reasonable means, this is the first time you have | |
444 | +received notice of violation of this License (for any work) from that | |
445 | +copyright holder, and you cure the violation prior to 30 days after | |
446 | +your receipt of the notice. | |
447 | + | |
448 | + Termination of your rights under this section does not terminate the | |
449 | +licenses of parties who have received copies or rights from you under | |
450 | +this License. If your rights have been terminated and not permanently | |
451 | +reinstated, you do not qualify to receive new licenses for the same | |
452 | +material under section 10. | |
453 | + | |
454 | + 9. Acceptance Not Required for Having Copies. | |
455 | + | |
456 | + You are not required to accept this License in order to receive or | |
457 | +run a copy of the Program. Ancillary propagation of a covered work | |
458 | +occurring solely as a consequence of using peer-to-peer transmission | |
459 | +to receive a copy likewise does not require acceptance. However, | |
460 | +nothing other than this License grants you permission to propagate or | |
461 | +modify any covered work. These actions infringe copyright if you do | |
462 | +not accept this License. Therefore, by modifying or propagating a | |
463 | +covered work, you indicate your acceptance of this License to do so. | |
464 | + | |
465 | + 10. Automatic Licensing of Downstream Recipients. | |
466 | + | |
467 | + Each time you convey a covered work, the recipient automatically | |
468 | +receives a license from the original licensors, to run, modify and | |
469 | +propagate that work, subject to this License. You are not responsible | |
470 | +for enforcing compliance by third parties with this License. | |
471 | + | |
472 | + An "entity transaction" is a transaction transferring control of an | |
473 | +organization, or substantially all assets of one, or subdividing an | |
474 | +organization, or merging organizations. If propagation of a covered | |
475 | +work results from an entity transaction, each party to that | |
476 | +transaction who receives a copy of the work also receives whatever | |
477 | +licenses to the work the party's predecessor in interest had or could | |
478 | +give under the previous paragraph, plus a right to possession of the | |
479 | +Corresponding Source of the work from the predecessor in interest, if | |
480 | +the predecessor has it or can get it with reasonable efforts. | |
481 | + | |
482 | + You may not impose any further restrictions on the exercise of the | |
483 | +rights granted or affirmed under this License. For example, you may | |
484 | +not impose a license fee, royalty, or other charge for exercise of | |
485 | +rights granted under this License, and you may not initiate litigation | |
486 | +(including a cross-claim or counterclaim in a lawsuit) alleging that | |
487 | +any patent claim is infringed by making, using, selling, offering for | |
488 | +sale, or importing the Program or any portion of it. | |
489 | + | |
490 | + 11. Patents. | |
491 | + | |
492 | + A "contributor" is a copyright holder who authorizes use under this | |
493 | +License of the Program or a work on which the Program is based. The | |
494 | +work thus licensed is called the contributor's "contributor version". | |
495 | + | |
496 | + A contributor's "essential patent claims" are all patent claims | |
497 | +owned or controlled by the contributor, whether already acquired or | |
498 | +hereafter acquired, that would be infringed by some manner, permitted | |
499 | +by this License, of making, using, or selling its contributor version, | |
500 | +but do not include claims that would be infringed only as a | |
501 | +consequence of further modification of the contributor version. For | |
502 | +purposes of this definition, "control" includes the right to grant | |
503 | +patent sublicenses in a manner consistent with the requirements of | |
504 | +this License. | |
505 | + | |
506 | + Each contributor grants you a non-exclusive, worldwide, royalty-free | |
507 | +patent license under the contributor's essential patent claims, to | |
508 | +make, use, sell, offer for sale, import and otherwise run, modify and | |
509 | +propagate the contents of its contributor version. | |
510 | + | |
511 | + In the following three paragraphs, a "patent license" is any express | |
512 | +agreement or commitment, however denominated, not to enforce a patent | |
513 | +(such as an express permission to practice a patent or covenant not to | |
514 | +sue for patent infringement). To "grant" such a patent license to a | |
515 | +party means to make such an agreement or commitment not to enforce a | |
516 | +patent against the party. | |
517 | + | |
518 | + If you convey a covered work, knowingly relying on a patent license, | |
519 | +and the Corresponding Source of the work is not available for anyone | |
520 | +to copy, free of charge and under the terms of this License, through a | |
521 | +publicly available network server or other readily accessible means, | |
522 | +then you must either (1) cause the Corresponding Source to be so | |
523 | +available, or (2) arrange to deprive yourself of the benefit of the | |
524 | +patent license for this particular work, or (3) arrange, in a manner | |
525 | +consistent with the requirements of this License, to extend the patent | |
526 | +license to downstream recipients. "Knowingly relying" means you have | |
527 | +actual knowledge that, but for the patent license, your conveying the | |
528 | +covered work in a country, or your recipient's use of the covered work | |
529 | +in a country, would infringe one or more identifiable patents in that | |
530 | +country that you have reason to believe are valid. | |
531 | + | |
532 | + If, pursuant to or in connection with a single transaction or | |
533 | +arrangement, you convey, or propagate by procuring conveyance of, a | |
534 | +covered work, and grant a patent license to some of the parties | |
535 | +receiving the covered work authorizing them to use, propagate, modify | |
536 | +or convey a specific copy of the covered work, then the patent license | |
537 | +you grant is automatically extended to all recipients of the covered | |
538 | +work and works based on it. | |
539 | + | |
540 | + A patent license is "discriminatory" if it does not include within | |
541 | +the scope of its coverage, prohibits the exercise of, or is | |
542 | +conditioned on the non-exercise of one or more of the rights that are | |
543 | +specifically granted under this License. You may not convey a covered | |
544 | +work if you are a party to an arrangement with a third party that is | |
545 | +in the business of distributing software, under which you make payment | |
546 | +to the third party based on the extent of your activity of conveying | |
547 | +the work, and under which the third party grants, to any of the | |
548 | +parties who would receive the covered work from you, a discriminatory | |
549 | +patent license (a) in connection with copies of the covered work | |
550 | +conveyed by you (or copies made from those copies), or (b) primarily | |
551 | +for and in connection with specific products or compilations that | |
552 | +contain the covered work, unless you entered into that arrangement, | |
553 | +or that patent license was granted, prior to 28 March 2007. | |
554 | + | |
555 | + Nothing in this License shall be construed as excluding or limiting | |
556 | +any implied license or other defenses to infringement that may | |
557 | +otherwise be available to you under applicable patent law. | |
558 | + | |
559 | + 12. No Surrender of Others' Freedom. | |
560 | + | |
561 | + If conditions are imposed on you (whether by court order, agreement or | |
562 | +otherwise) that contradict the conditions of this License, they do not | |
563 | +excuse you from the conditions of this License. If you cannot convey a | |
564 | +covered work so as to satisfy simultaneously your obligations under this | |
565 | +License and any other pertinent obligations, then as a consequence you may | |
566 | +not convey it at all. For example, if you agree to terms that obligate you | |
567 | +to collect a royalty for further conveying from those to whom you convey | |
568 | +the Program, the only way you could satisfy both those terms and this | |
569 | +License would be to refrain entirely from conveying the Program. | |
570 | + | |
571 | + 13. Use with the GNU Affero General Public License. | |
572 | + | |
573 | + Notwithstanding any other provision of this License, you have | |
574 | +permission to link or combine any covered work with a work licensed | |
575 | +under version 3 of the GNU Affero General Public License into a single | |
576 | +combined work, and to convey the resulting work. The terms of this | |
577 | +License will continue to apply to the part which is the covered work, | |
578 | +but the special requirements of the GNU Affero General Public License, | |
579 | +section 13, concerning interaction through a network will apply to the | |
580 | +combination as such. | |
581 | + | |
582 | + 14. Revised Versions of this License. | |
583 | + | |
584 | + The Free Software Foundation may publish revised and/or new versions of | |
585 | +the GNU General Public License from time to time. Such new versions will | |
586 | +be similar in spirit to the present version, but may differ in detail to | |
587 | +address new problems or concerns. | |
588 | + | |
589 | + Each version is given a distinguishing version number. If the | |
590 | +Program specifies that a certain numbered version of the GNU General | |
591 | +Public License "or any later version" applies to it, you have the | |
592 | +option of following the terms and conditions either of that numbered | |
593 | +version or of any later version published by the Free Software | |
594 | +Foundation. If the Program does not specify a version number of the | |
595 | +GNU General Public License, you may choose any version ever published | |
596 | +by the Free Software Foundation. | |
597 | + | |
598 | + If the Program specifies that a proxy can decide which future | |
599 | +versions of the GNU General Public License can be used, that proxy's | |
600 | +public statement of acceptance of a version permanently authorizes you | |
601 | +to choose that version for the Program. | |
602 | + | |
603 | + Later license versions may give you additional or different | |
604 | +permissions. However, no additional obligations are imposed on any | |
605 | +author or copyright holder as a result of your choosing to follow a | |
606 | +later version. | |
607 | + | |
608 | + 15. Disclaimer of Warranty. | |
609 | + | |
610 | + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY | |
611 | +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT | |
612 | +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY | |
613 | +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, | |
614 | +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
615 | +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM | |
616 | +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF | |
617 | +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. | |
618 | + | |
619 | + 16. Limitation of Liability. | |
620 | + | |
621 | + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |
622 | +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS | |
623 | +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY | |
624 | +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE | |
625 | +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF | |
626 | +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD | |
627 | +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), | |
628 | +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF | |
629 | +SUCH DAMAGES. | |
630 | + | |
631 | + 17. Interpretation of Sections 15 and 16. | |
632 | + | |
633 | + If the disclaimer of warranty and limitation of liability provided | |
634 | +above cannot be given local legal effect according to their terms, | |
635 | +reviewing courts shall apply local law that most closely approximates | |
636 | +an absolute waiver of all civil liability in connection with the | |
637 | +Program, unless a warranty or assumption of liability accompanies a | |
638 | +copy of the Program in return for a fee. | |
639 | + | |
640 | + END OF TERMS AND CONDITIONS | |
641 | + | |
642 | + How to Apply These Terms to Your New Programs | |
643 | + | |
644 | + If you develop a new program, and you want it to be of the greatest | |
645 | +possible use to the public, the best way to achieve this is to make it | |
646 | +free software which everyone can redistribute and change under these terms. | |
647 | + | |
648 | + To do so, attach the following notices to the program. It is safest | |
649 | +to attach them to the start of each source file to most effectively | |
650 | +state the exclusion of warranty; and each file should have at least | |
651 | +the "copyright" line and a pointer to where the full notice is found. | |
652 | + | |
653 | + <one line to give the program's name and a brief idea of what it does.> | |
654 | + Copyright (C) <year> <name of author> | |
655 | + | |
656 | + This program is free software: you can redistribute it and/or modify | |
657 | + it under the terms of the GNU General Public License as published by | |
658 | + the Free Software Foundation, either version 3 of the License, or | |
659 | + (at your option) any later version. | |
660 | + | |
661 | + This program is distributed in the hope that it will be useful, | |
662 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
663 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
664 | + GNU General Public License for more details. | |
665 | + | |
666 | + You should have received a copy of the GNU General Public License | |
667 | + along with this program. If not, see <http://www.gnu.org/licenses/>. | |
668 | + | |
669 | +Also add information on how to contact you by electronic and paper mail. | |
670 | + | |
671 | + If the program does terminal interaction, make it output a short | |
672 | +notice like this when it starts in an interactive mode: | |
673 | + | |
674 | + <program> Copyright (C) <year> <name of author> | |
675 | + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | |
676 | + This is free software, and you are welcome to redistribute it | |
677 | + under certain conditions; type `show c' for details. | |
678 | + | |
679 | +The hypothetical commands `show w' and `show c' should show the appropriate | |
680 | +parts of the General Public License. Of course, your program's commands | |
681 | +might be different; for a GUI interface, you would use an "about box". | |
682 | + | |
683 | + You should also get your employer (if you work as a programmer) or school, | |
684 | +if any, to sign a "copyright disclaimer" for the program, if necessary. | |
685 | +For more information on this, and how to apply and follow the GNU GPL, see | |
686 | +<http://www.gnu.org/licenses/>. | |
687 | + | |
688 | + The GNU General Public License does not permit incorporating your program | |
689 | +into proprietary programs. If your program is a subroutine library, you | |
690 | +may consider it more useful to permit linking proprietary applications with | |
691 | +the library. If this is what you want to do, use the GNU Lesser General | |
692 | +Public License instead of this License. But first, please read | |
693 | +<http://www.gnu.org/philosophy/why-not-lgpl.html>. | |
694 | + | |
695 | +-------------------------------------------------------------------------------- | |
696 | + | |
697 | +The following runtime libraries are licensed under the terms of the | |
698 | +GNU General Public License (v3 or later) with version 3.1 of the GCC | |
699 | +Runtime Library Exception (included in this file): | |
700 | + | |
701 | + - libgcc (libgcc/, gcc/libgcc2.[ch], gcc/unwind*, gcc/gthr*, | |
702 | + gcc/coretypes.h, gcc/crtstuff.c, gcc/defaults.h, gcc/dwarf2.h, | |
703 | + gcc/emults.c, gcc/gbl-ctors.h, gcc/gcov-io.h, gcc/libgcov.c, | |
704 | + gcc/tsystem.h, gcc/typeclass.h). | |
705 | + - libdecnumber | |
706 | + - libgomp | |
707 | + - libssp | |
708 | + - libstdc++-v3 | |
709 | + - libobjc | |
710 | + - libmudflap | |
711 | + - libgfortran | |
712 | + - The libgnat-4.6 Ada support library and libgnatvsn library. | |
713 | + - Various config files in gcc/config/ used in runtime libraries. | |
714 | + | |
715 | +-------------------------------------------------------------------------------- | |
716 | + | |
717 | +In contrast, libgnatprj is licensed under the terms of the pure GNU | |
718 | +General Public License. | |
719 | + | |
720 | +-------------------------------------------------------------------------------- | |
721 | + | |
722 | +The libgcj library is licensed under the terms of the GNU General | |
723 | +Public License, with a special exception: | |
724 | + | |
725 | + Linking this library statically or dynamically with other modules | |
726 | + is making a combined work based on this library. Thus, the terms | |
727 | + and conditions of the GNU General Public License cover the whole | |
728 | + combination. | |
729 | + | |
730 | + As a special exception, the copyright holders of this library give | |
731 | + you permission to link this library with independent modules to | |
732 | + produce an executable, regardless of the license terms of these | |
733 | + independent modules, and to copy and distribute the resulting | |
734 | + executable under terms of your choice, provided that you also | |
735 | + meet, for each linked independent module, the terms and conditions | |
736 | + of the license of that module. An independent module is a module | |
737 | + which is not derived from or based on this library. If you modify | |
738 | + this library, you may extend this exception to your version of the | |
739 | + library, but you are not obligated to do so. If you do not wish | |
740 | + to do so, delete this exception statement from your version. | |
741 | + | |
742 | +-------------------------------------------------------------------------------- | |
743 | + | |
744 | +The libffi library is licensed under the following terms: | |
745 | + | |
746 | + libffi - Copyright (c) 1996-2003 Red Hat, Inc. | |
747 | + | |
748 | + Permission is hereby granted, free of charge, to any person obtaining | |
749 | + a copy of this software and associated documentation files (the | |
750 | + ``Software''), to deal in the Software without restriction, including | |
751 | + without limitation the rights to use, copy, modify, merge, publish, | |
752 | + distribute, sublicense, and/or sell copies of the Software, and to | |
753 | + permit persons to whom the Software is furnished to do so, subject to | |
754 | + the following conditions: | |
755 | + | |
756 | + The above copyright notice and this permission notice shall be included | |
757 | + in all copies or substantial portions of the Software. | |
758 | + | |
759 | + THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
760 | + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
761 | + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
762 | + IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR | |
763 | + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | |
764 | + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | |
765 | + OTHER DEALINGS IN THE SOFTWARE. | |
766 | + | |
767 | + | |
768 | +-------------------------------------------------------------------------------- | |
769 | + | |
770 | +The documentation is licensed under the GNU Free Documentation License (v1.2). | |
771 | + | |
772 | + | |
773 | + GNU Free Documentation License | |
774 | + Version 1.2, November 2002 | |
775 | + | |
776 | + | |
777 | + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. | |
778 | + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | |
779 | + Everyone is permitted to copy and distribute verbatim copies | |
780 | + of this license document, but changing it is not allowed. | |
781 | + | |
782 | + | |
783 | +0. PREAMBLE | |
784 | + | |
785 | +The purpose of this License is to make a manual, textbook, or other | |
786 | +functional and useful document "free" in the sense of freedom: to | |
787 | +assure everyone the effective freedom to copy and redistribute it, | |
788 | +with or without modifying it, either commercially or noncommercially. | |
789 | +Secondarily, this License preserves for the author and publisher a way | |
790 | +to get credit for their work, while not being considered responsible | |
791 | +for modifications made by others. | |
792 | + | |
793 | +This License is a kind of "copyleft", which means that derivative | |
794 | +works of the document must themselves be free in the same sense. It | |
795 | +complements the GNU General Public License, which is a copyleft | |
796 | +license designed for free software. | |
797 | + | |
798 | +We have designed this License in order to use it for manuals for free | |
799 | +software, because free software needs free documentation: a free | |
800 | +program should come with manuals providing the same freedoms that the | |
801 | +software does. But this License is not limited to software manuals; | |
802 | +it can be used for any textual work, regardless of subject matter or | |
803 | +whether it is published as a printed book. We recommend this License | |
804 | +principally for works whose purpose is instruction or reference. | |
805 | + | |
806 | + | |
807 | +1. APPLICABILITY AND DEFINITIONS | |
808 | + | |
809 | +This License applies to any manual or other work, in any medium, that | |
810 | +contains a notice placed by the copyright holder saying it can be | |
811 | +distributed under the terms of this License. Such a notice grants a | |
812 | +world-wide, royalty-free license, unlimited in duration, to use that | |
813 | +work under the conditions stated herein. The "Document", below, | |
814 | +refers to any such manual or work. Any member of the public is a | |
815 | +licensee, and is addressed as "you". You accept the license if you | |
816 | +copy, modify or distribute the work in a way requiring permission | |
817 | +under copyright law. | |
818 | + | |
819 | +A "Modified Version" of the Document means any work containing the | |
820 | +Document or a portion of it, either copied verbatim, or with | |
821 | +modifications and/or translated into another language. | |
822 | + | |
823 | +A "Secondary Section" is a named appendix or a front-matter section of | |
824 | +the Document that deals exclusively with the relationship of the | |
825 | +publishers or authors of the Document to the Document's overall subject | |
826 | +(or to related matters) and contains nothing that could fall directly | |
827 | +within that overall subject. (Thus, if the Document is in part a | |
828 | +textbook of mathematics, a Secondary Section may not explain any | |
829 | +mathematics.) The relationship could be a matter of historical | |
830 | +connection with the subject or with related matters, or of legal, | |
831 | +commercial, philosophical, ethical or political position regarding | |
832 | +them. | |
833 | + | |
834 | +The "Invariant Sections" are certain Secondary Sections whose titles | |
835 | +are designated, as being those of Invariant Sections, in the notice | |
836 | +that says that the Document is released under this License. If a | |
837 | +section does not fit the above definition of Secondary then it is not | |
838 | +allowed to be designated as Invariant. The Document may contain zero | |
839 | +Invariant Sections. If the Document does not identify any Invariant | |
840 | +Sections then there are none. | |
841 | + | |
842 | +The "Cover Texts" are certain short passages of text that are listed, | |
843 | +as Front-Cover Texts or Back-Cover Texts, in the notice that says that | |
844 | +the Document is released under this License. A Front-Cover Text may | |
845 | +be at most 5 words, and a Back-Cover Text may be at most 25 words. | |
846 | + | |
847 | +A "Transparent" copy of the Document means a machine-readable copy, | |
848 | +represented in a format whose specification is available to the | |
849 | +general public, that is suitable for revising the document | |
850 | +straightforwardly with generic text editors or (for images composed of | |
851 | +pixels) generic paint programs or (for drawings) some widely available | |
852 | +drawing editor, and that is suitable for input to text formatters or | |
853 | +for automatic translation to a variety of formats suitable for input | |
854 | +to text formatters. A copy made in an otherwise Transparent file | |
855 | +format whose markup, or absence of markup, has been arranged to thwart | |
856 | +or discourage subsequent modification by readers is not Transparent. | |
857 | +An image format is not Transparent if used for any substantial amount | |
858 | +of text. A copy that is not "Transparent" is called "Opaque". | |
859 | + | |
860 | +Examples of suitable formats for Transparent copies include plain | |
861 | +ASCII without markup, Texinfo input format, LaTeX input format, SGML | |
862 | +or XML using a publicly available DTD, and standard-conforming simple | |
863 | +HTML, PostScript or PDF designed for human modification. Examples of | |
864 | +transparent image formats include PNG, XCF and JPG. Opaque formats | |
865 | +include proprietary formats that can be read and edited only by | |
866 | +proprietary word processors, SGML or XML for which the DTD and/or | |
867 | +processing tools are not generally available, and the | |
868 | +machine-generated HTML, PostScript or PDF produced by some word | |
869 | +processors for output purposes only. | |
870 | + | |
871 | +The "Title Page" means, for a printed book, the title page itself, | |
872 | +plus such following pages as are needed to hold, legibly, the material | |
873 | +this License requires to appear in the title page. For works in | |
874 | +formats which do not have any title page as such, "Title Page" means | |
875 | +the text near the most prominent appearance of the work's title, | |
876 | +preceding the beginning of the body of the text. | |
877 | + | |
878 | +A section "Entitled XYZ" means a named subunit of the Document whose | |
879 | +title either is precisely XYZ or contains XYZ in parentheses following | |
880 | +text that translates XYZ in another language. (Here XYZ stands for a | |
881 | +specific section name mentioned below, such as "Acknowledgements", | |
882 | +"Dedications", "Endorsements", or "History".) To "Preserve the Title" | |
883 | +of such a section when you modify the Document means that it remains a | |
884 | +section "Entitled XYZ" according to this definition. | |
885 | + | |
886 | +The Document may include Warranty Disclaimers next to the notice which | |
887 | +states that this License applies to the Document. These Warranty | |
888 | +Disclaimers are considered to be included by reference in this | |
889 | +License, but only as regards disclaiming warranties: any other | |
890 | +implication that these Warranty Disclaimers may have is void and has | |
891 | +no effect on the meaning of this License. | |
892 | + | |
893 | + | |
894 | +2. VERBATIM COPYING | |
895 | + | |
896 | +You may copy and distribute the Document in any medium, either | |
897 | +commercially or noncommercially, provided that this License, the | |
898 | +copyright notices, and the license notice saying this License applies | |
899 | +to the Document are reproduced in all copies, and that you add no other | |
900 | +conditions whatsoever to those of this License. You may not use | |
901 | +technical measures to obstruct or control the reading or further | |
902 | +copying of the copies you make or distribute. However, you may accept | |
903 | +compensation in exchange for copies. If you distribute a large enough | |
904 | +number of copies you must also follow the conditions in section 3. | |
905 | + | |
906 | +You may also lend copies, under the same conditions stated above, and | |
907 | +you may publicly display copies. | |
908 | + | |
909 | + | |
910 | +3. COPYING IN QUANTITY | |
911 | + | |
912 | +If you publish printed copies (or copies in media that commonly have | |
913 | +printed covers) of the Document, numbering more than 100, and the | |
914 | +Document's license notice requires Cover Texts, you must enclose the | |
915 | +copies in covers that carry, clearly and legibly, all these Cover | |
916 | +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on | |
917 | +the back cover. Both covers must also clearly and legibly identify | |
918 | +you as the publisher of these copies. The front cover must present | |
919 | +the full title with all words of the title equally prominent and | |
920 | +visible. You may add other material on the covers in addition. | |
921 | +Copying with changes limited to the covers, as long as they preserve | |
922 | +the title of the Document and satisfy these conditions, can be treated | |
923 | +as verbatim copying in other respects. | |
924 | + | |
925 | +If the required texts for either cover are too voluminous to fit | |
926 | +legibly, you should put the first ones listed (as many as fit | |
927 | +reasonably) on the actual cover, and continue the rest onto adjacent | |
928 | +pages. | |
929 | + | |
930 | +If you publish or distribute Opaque copies of the Document numbering | |
931 | +more than 100, you must either include a machine-readable Transparent | |
932 | +copy along with each Opaque copy, or state in or with each Opaque copy | |
933 | +a computer-network location from which the general network-using | |
934 | +public has access to download using public-standard network protocols | |
935 | +a complete Transparent copy of the Document, free of added material. | |
936 | +If you use the latter option, you must take reasonably prudent steps, | |
937 | +when you begin distribution of Opaque copies in quantity, to ensure | |
938 | +that this Transparent copy will remain thus accessible at the stated | |
939 | +location until at least one year after the last time you distribute an | |
940 | +Opaque copy (directly or through your agents or retailers) of that | |
941 | +edition to the public. | |
942 | + | |
943 | +It is requested, but not required, that you contact the authors of the | |
944 | +Document well before redistributing any large number of copies, to give | |
945 | +them a chance to provide you with an updated version of the Document. | |
946 | + | |
947 | + | |
948 | +4. MODIFICATIONS | |
949 | + | |
950 | +You may copy and distribute a Modified Version of the Document under | |
951 | +the conditions of sections 2 and 3 above, provided that you release | |
952 | +the Modified Version under precisely this License, with the Modified | |
953 | +Version filling the role of the Document, thus licensing distribution | |
954 | +and modification of the Modified Version to whoever possesses a copy | |
955 | +of it. In addition, you must do these things in the Modified Version: | |
956 | + | |
957 | +A. Use in the Title Page (and on the covers, if any) a title distinct | |
958 | + from that of the Document, and from those of previous versions | |
959 | + (which should, if there were any, be listed in the History section | |
960 | + of the Document). You may use the same title as a previous version | |
961 | + if the original publisher of that version gives permission. | |
962 | +B. List on the Title Page, as authors, one or more persons or entities | |
963 | + responsible for authorship of the modifications in the Modified | |
964 | + Version, together with at least five of the principal authors of the | |
965 | + Document (all of its principal authors, if it has fewer than five), | |
966 | + unless they release you from this requirement. | |
967 | +C. State on the Title page the name of the publisher of the | |
968 | + Modified Version, as the publisher. | |
969 | +D. Preserve all the copyright notices of the Document. | |
970 | +E. Add an appropriate copyright notice for your modifications | |
971 | + adjacent to the other copyright notices. | |
972 | +F. Include, immediately after the copyright notices, a license notice | |
973 | + giving the public permission to use the Modified Version under the | |
974 | + terms of this License, in the form shown in the Addendum below. | |
975 | +G. Preserve in that license notice the full lists of Invariant Sections | |
976 | + and required Cover Texts given in the Document's license notice. | |
977 | +H. Include an unaltered copy of this License. | |
978 | +I. Preserve the section Entitled "History", Preserve its Title, and add | |
979 | + to it an item stating at least the title, year, new authors, and | |
980 | + publisher of the Modified Version as given on the Title Page. If | |
981 | + there is no section Entitled "History" in the Document, create one | |
982 | + stating the title, year, authors, and publisher of the Document as | |
983 | + given on its Title Page, then add an item describing the Modified | |
984 | + Version as stated in the previous sentence. | |
985 | +J. Preserve the network location, if any, given in the Document for | |
986 | + public access to a Transparent copy of the Document, and likewise | |
987 | + the network locations given in the Document for previous versions | |
988 | + it was based on. These may be placed in the "History" section. | |
989 | + You may omit a network location for a work that was published at | |
990 | + least four years before the Document itself, or if the original | |
991 | + publisher of the version it refers to gives permission. | |
992 | +K. For any section Entitled "Acknowledgements" or "Dedications", | |
993 | + Preserve the Title of the section, and preserve in the section all | |
994 | + the substance and tone of each of the contributor acknowledgements | |
995 | + and/or dedications given therein. | |
996 | +L. Preserve all the Invariant Sections of the Document, | |
997 | + unaltered in their text and in their titles. Section numbers | |
998 | + or the equivalent are not considered part of the section titles. | |
999 | +M. Delete any section Entitled "Endorsements". Such a section | |
1000 | + may not be included in the Modified Version. | |
1001 | +N. Do not retitle any existing section to be Entitled "Endorsements" | |
1002 | + or to conflict in title with any Invariant Section. | |
1003 | +O. Preserve any Warranty Disclaimers. | |
1004 | + | |
1005 | +If the Modified Version includes new front-matter sections or | |
1006 | +appendices that qualify as Secondary Sections and contain no material | |
1007 | +copied from the Document, you may at your option designate some or all | |
1008 | +of these sections as invariant. To do this, add their titles to the | |
1009 | +list of Invariant Sections in the Modified Version's license notice. | |
1010 | +These titles must be distinct from any other section titles. | |
1011 | + | |
1012 | +You may add a section Entitled "Endorsements", provided it contains | |
1013 | +nothing but endorsements of your Modified Version by various | |
1014 | +parties--for example, statements of peer review or that the text has | |
1015 | +been approved by an organization as the authoritative definition of a | |
1016 | +standard. | |
1017 | + | |
1018 | +You may add a passage of up to five words as a Front-Cover Text, and a | |
1019 | +passage of up to 25 words as a Back-Cover Text, to the end of the list | |
1020 | +of Cover Texts in the Modified Version. Only one passage of | |
1021 | +Front-Cover Text and one of Back-Cover Text may be added by (or | |
1022 | +through arrangements made by) any one entity. If the Document already | |
1023 | +includes a cover text for the same cover, previously added by you or | |
1024 | +by arrangement made by the same entity you are acting on behalf of, | |
1025 | +you may not add another; but you may replace the old one, on explicit | |
1026 | +permission from the previous publisher that added the old one. | |
1027 | + | |
1028 | +The author(s) and publisher(s) of the Document do not by this License | |
1029 | +give permission to use their names for publicity for or to assert or | |
1030 | +imply endorsement of any Modified Version. | |
1031 | + | |
1032 | + | |
1033 | +5. COMBINING DOCUMENTS | |
1034 | + | |
1035 | +You may combine the Document with other documents released under this | |
1036 | +License, under the terms defined in section 4 above for modified | |
1037 | +versions, provided that you include in the combination all of the | |
1038 | +Invariant Sections of all of the original documents, unmodified, and | |
1039 | +list them all as Invariant Sections of your combined work in its | |
1040 | +license notice, and that you preserve all their Warranty Disclaimers. | |
1041 | + | |
1042 | +The combined work need only contain one copy of this License, and | |
1043 | +multiple identical Invariant Sections may be replaced with a single | |
1044 | +copy. If there are multiple Invariant Sections with the same name but | |
1045 | +different contents, make the title of each such section unique by | |
1046 | +adding at the end of it, in parentheses, the name of the original | |
1047 | +author or publisher of that section if known, or else a unique number. | |
1048 | +Make the same adjustment to the section titles in the list of | |
1049 | +Invariant Sections in the license notice of the combined work. | |
1050 | + | |
1051 | +In the combination, you must combine any sections Entitled "History" | |
1052 | +in the various original documents, forming one section Entitled | |
1053 | +"History"; likewise combine any sections Entitled "Acknowledgements", | |
1054 | +and any sections Entitled "Dedications". You must delete all sections | |
1055 | +Entitled "Endorsements". | |
1056 | + | |
1057 | + | |
1058 | +6. COLLECTIONS OF DOCUMENTS | |
1059 | + | |
1060 | +You may make a collection consisting of the Document and other documents | |
1061 | +released under this License, and replace the individual copies of this | |
1062 | +License in the various documents with a single copy that is included in | |
1063 | +the collection, provided that you follow the rules of this License for | |
1064 | +verbatim copying of each of the documents in all other respects. | |
1065 | + | |
1066 | +You may extract a single document from such a collection, and distribute | |
1067 | +it individually under this License, provided you insert a copy of this | |
1068 | +License into the extracted document, and follow this License in all | |
1069 | +other respects regarding verbatim copying of that document. | |
1070 | + | |
1071 | + | |
1072 | +7. AGGREGATION WITH INDEPENDENT WORKS | |
1073 | + | |
1074 | +A compilation of the Document or its derivatives with other separate | |
1075 | +and independent documents or works, in or on a volume of a storage or | |
1076 | +distribution medium, is called an "aggregate" if the copyright | |
1077 | +resulting from the compilation is not used to limit the legal rights | |
1078 | +of the compilation's users beyond what the individual works permit. | |
1079 | +When the Document is included in an aggregate, this License does not | |
1080 | +apply to the other works in the aggregate which are not themselves | |
1081 | +derivative works of the Document. | |
1082 | + | |
1083 | +If the Cover Text requirement of section 3 is applicable to these | |
1084 | +copies of the Document, then if the Document is less than one half of | |
1085 | +the entire aggregate, the Document's Cover Texts may be placed on | |
1086 | +covers that bracket the Document within the aggregate, or the | |
1087 | +electronic equivalent of covers if the Document is in electronic form. | |
1088 | +Otherwise they must appear on printed covers that bracket the whole | |
1089 | +aggregate. | |
1090 | + | |
1091 | + | |
1092 | +8. TRANSLATION | |
1093 | + | |
1094 | +Translation is considered a kind of modification, so you may | |
1095 | +distribute translations of the Document under the terms of section 4. | |
1096 | +Replacing Invariant Sections with translations requires special | |
1097 | +permission from their copyright holders, but you may include | |
1098 | +translations of some or all Invariant Sections in addition to the | |
1099 | +original versions of these Invariant Sections. You may include a | |
1100 | +translation of this License, and all the license notices in the | |
1101 | +Document, and any Warranty Disclaimers, provided that you also include | |
1102 | +the original English version of this License and the original versions | |
1103 | +of those notices and disclaimers. In case of a disagreement between | |
1104 | +the translation and the original version of this License or a notice | |
1105 | +or disclaimer, the original version will prevail. | |
1106 | + | |
1107 | +If a section in the Document is Entitled "Acknowledgements", | |
1108 | +"Dedications", or "History", the requirement (section 4) to Preserve | |
1109 | +its Title (section 1) will typically require changing the actual | |
1110 | +title. | |
1111 | + | |
1112 | + | |
1113 | +9. TERMINATION | |
1114 | + | |
1115 | +You may not copy, modify, sublicense, or distribute the Document except | |
1116 | +as expressly provided for under this License. Any other attempt to | |
1117 | +copy, modify, sublicense or distribute the Document is void, and will | |
1118 | +automatically terminate your rights under this License. However, | |
1119 | +parties who have received copies, or rights, from you under this | |
1120 | +License will not have their licenses terminated so long as such | |
1121 | +parties remain in full compliance. | |
1122 | + | |
1123 | + | |
1124 | +10. FUTURE REVISIONS OF THIS LICENSE | |
1125 | + | |
1126 | +The Free Software Foundation may publish new, revised versions | |
1127 | +of the GNU Free Documentation License from time to time. Such new | |
1128 | +versions will be similar in spirit to the present version, but may | |
1129 | +differ in detail to address new problems or concerns. See | |
1130 | +http://www.gnu.org/copyleft/. | |
1131 | + | |
1132 | +Each version of the License is given a distinguishing version number. | |
1133 | +If the Document specifies that a particular numbered version of this | |
1134 | +License "or any later version" applies to it, you have the option of | |
1135 | +following the terms and conditions either of that specified version or | |
1136 | +of any later version that has been published (not as a draft) by the | |
1137 | +Free Software Foundation. If the Document does not specify a version | |
1138 | +number of this License, you may choose any version ever published (not | |
1139 | +as a draft) by the Free Software Foundation. | |
1140 | + | |
1141 | + | |
1142 | +ADDENDUM: How to use this License for your documents | |
1143 | + | |
1144 | +To use this License in a document you have written, include a copy of | |
1145 | +the License in the document and put the following copyright and | |
1146 | +license notices just after the title page: | |
1147 | + | |
1148 | + Copyright (c) YEAR YOUR NAME. | |
1149 | + Permission is granted to copy, distribute and/or modify this document | |
1150 | + under the terms of the GNU Free Documentation License, Version 1.2 | |
1151 | + or any later version published by the Free Software Foundation; | |
1152 | + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. | |
1153 | + A copy of the license is included in the section entitled "GNU | |
1154 | + Free Documentation License". | |
1155 | + | |
1156 | +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, | |
1157 | +replace the "with...Texts." line with this: | |
1158 | + | |
1159 | + with the Invariant Sections being LIST THEIR TITLES, with the | |
1160 | + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. | |
1161 | + | |
1162 | +If you have Invariant Sections without Cover Texts, or some other | |
1163 | +combination of the three, merge those two alternatives to suit the | |
1164 | +situation. | |
1165 | + | |
1166 | +If your document contains nontrivial examples of program code, we | |
1167 | +recommend releasing these examples in parallel under your choice of | |
1168 | +free software license, such as the GNU General Public License, | |
1169 | +to permit their use in free software. | |
1170 | + | |
1171 | +-------------------------------------------------------------------------------- | |
1172 | + | |
1173 | +GCC RUNTIME LIBRARY EXCEPTION | |
1174 | + | |
1175 | +Version 3.1, 31 March 2009 | |
1176 | + | |
1177 | +Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/> | |
1178 | + | |
1179 | +Everyone is permitted to copy and distribute verbatim copies of this | |
1180 | +license document, but changing it is not allowed. | |
1181 | + | |
1182 | +This GCC Runtime Library Exception ("Exception") is an additional | |
1183 | +permission under section 7 of the GNU General Public License, version | |
1184 | +3 ("GPLv3"). It applies to a given file (the "Runtime Library") that | |
1185 | +bears a notice placed by the copyright holder of the file stating that | |
1186 | +the file is governed by GPLv3 along with this Exception. | |
1187 | + | |
1188 | +When you use GCC to compile a program, GCC may combine portions of | |
1189 | +certain GCC header files and runtime libraries with the compiled | |
1190 | +program. The purpose of this Exception is to allow compilation of | |
1191 | +non-GPL (including proprietary) programs to use, in this way, the | |
1192 | +header files and runtime libraries covered by this Exception. | |
1193 | + | |
1194 | +0. Definitions. | |
1195 | + | |
1196 | +A file is an "Independent Module" if it either requires the Runtime | |
1197 | +Library for execution after a Compilation Process, or makes use of an | |
1198 | +interface provided by the Runtime Library, but is not otherwise based | |
1199 | +on the Runtime Library. | |
1200 | + | |
1201 | +"GCC" means a version of the GNU Compiler Collection, with or without | |
1202 | +modifications, governed by version 3 (or a specified later version) of | |
1203 | +the GNU General Public License (GPL) with the option of using any | |
1204 | +subsequent versions published by the FSF. | |
1205 | + | |
1206 | +"GPL-compatible Software" is software whose conditions of propagation, | |
1207 | +modification and use would permit combination with GCC in accord with | |
1208 | +the license of GCC. | |
1209 | + | |
1210 | +"Target Code" refers to output from any compiler for a real or virtual | |
1211 | +target processor architecture, in executable form or suitable for | |
1212 | +input to an assembler, loader, linker and/or execution | |
1213 | +phase. Notwithstanding that, Target Code does not include data in any | |
1214 | +format that is used as a compiler intermediate representation, or used | |
1215 | +for producing a compiler intermediate representation. | |
1216 | + | |
1217 | +The "Compilation Process" transforms code entirely represented in | |
1218 | +non-intermediate languages designed for human-written code, and/or in | |
1219 | +Java Virtual Machine byte code, into Target Code. Thus, for example, | |
1220 | +use of source code generators and preprocessors need not be considered | |
1221 | +part of the Compilation Process, since the Compilation Process can be | |
1222 | +understood as starting with the output of the generators or | |
1223 | +preprocessors. | |
1224 | + | |
1225 | +A Compilation Process is "Eligible" if it is done using GCC, alone or | |
1226 | +with other GPL-compatible software, or if it is done without using any | |
1227 | +work based on GCC. For example, using non-GPL-compatible Software to | |
1228 | +optimize any GCC intermediate representations would not qualify as an | |
1229 | +Eligible Compilation Process. | |
1230 | + | |
1231 | +1. Grant of Additional Permission. | |
1232 | + | |
1233 | +You have permission to propagate a work of Target Code formed by | |
1234 | +combining the Runtime Library with Independent Modules, even if such | |
1235 | +propagation would otherwise violate the terms of GPLv3, provided that | |
1236 | +all Target Code was generated by Eligible Compilation Processes. You | |
1237 | +may then convey such a combination under terms of your choice, | |
1238 | +consistent with the licensing of the Independent Modules. | |
1239 | + | |
1240 | +2. No Weakening of GCC Copyleft. | |
1241 | + | |
1242 | +The availability of this Exception does not imply any general | |
1243 | +presumption that third-party software is unaffected by the copyleft | |
1244 | +requirements of the license of GCC. | |
1245 | + | |
1246 | + | |
1247 | +-------------------------------------------------------------------------------- | |
1248 | + | |
1249 | +libquadmath/*.[hc]: | |
1250 | + | |
1251 | + Copyright (C) 2010 Free Software Foundation, Inc. | |
1252 | + Written by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
1253 | + Written by Tobias Burnus <burnus@net-b.de> | |
1254 | + | |
1255 | +This file is part of the libiberty library. | |
1256 | +Libiberty is free software; you can redistribute it and/or | |
1257 | +modify it under the terms of the GNU Library General Public | |
1258 | +License as published by the Free Software Foundation; either | |
1259 | +version 2 of the License, or (at your option) any later version. | |
1260 | + | |
1261 | +Libiberty is distributed in the hope that it will be useful, | |
1262 | +but WITHOUT ANY WARRANTY; without even the implied warranty of | |
1263 | +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
1264 | +Library General Public License for more details. | |
1265 | + | |
1266 | +-------------------------------------------------------------------------------- | |
1267 | + | |
1268 | +libquadmath/gdtoa: | |
1269 | + | |
1270 | +The author of this software is David M. Gay. | |
1271 | + | |
1272 | +Copyright (C) 1998, 1999, 2000, 2001 by Lucent Technologies | |
1273 | +All Rights Reserved | |
1274 | + | |
1275 | +Permission to use, copy, modify, and distribute this software and | |
1276 | +its documentation for any purpose and without fee is hereby | |
1277 | +granted, provided that the above copyright notice appear in all | |
1278 | +copies and that both that the copyright notice and this | |
1279 | +permission notice and warranty disclaimer appear in supporting | |
1280 | +documentation, and that the name of Lucent or any of its entities | |
1281 | +not be used in advertising or publicity pertaining to | |
1282 | +distribution of the software without specific, written prior | |
1283 | +permission. | |
1284 | + | |
1285 | +LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, | |
1286 | +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. | |
1287 | +IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY | |
1288 | +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
1289 | +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | |
1290 | +IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, | |
1291 | +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF | |
1292 | +THIS SOFTWARE. | |
1293 | + | |
1294 | +-------------------------------------------------------------------------------- | |
1295 | + | |
1296 | +libquadmath/math: | |
1297 | + | |
1298 | +atanq.c, expm1q.c, j0q.c, j1q.c, log1pq.c, logq.c: | |
1299 | + Copyright 2001 by Stephen L. Moshier <moshier@na-net.ornl.gov> | |
1300 | + | |
1301 | + This library is free software; you can redistribute it and/or | |
1302 | + modify it under the terms of the GNU Lesser General Public | |
1303 | + License as published by the Free Software Foundation; either | |
1304 | + version 2.1 of the License, or (at your option) any later version. | |
1305 | + | |
1306 | + This library is distributed in the hope that it will be useful, | |
1307 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
1308 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
1309 | + Lesser General Public License for more details. | |
1310 | + | |
1311 | +coshq.c, erfq.c, jnq.c, lgammaq.c, powq.c, roundq.c: | |
1312 | + Changes for 128-bit __float128 are | |
1313 | + Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov> | |
1314 | + and are incorporated herein by permission of the author. The author | |
1315 | + reserves the right to distribute this material elsewhere under different | |
1316 | + copying permissions. These modifications are distributed here under | |
1317 | + the following terms: | |
1318 | + | |
1319 | + This library is free software; you can redistribute it and/or | |
1320 | + modify it under the terms of the GNU Lesser General Public | |
1321 | + License as published by the Free Software Foundation; either | |
1322 | + version 2.1 of the License, or (at your option) any later version. | |
1323 | + | |
1324 | + This library is distributed in the hope that it will be useful, | |
1325 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
1326 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
1327 | + Lesser General Public License for more details. | |
1328 | + | |
1329 | +ldexpq.c: | |
1330 | + * Conversion to long double by Ulrich Drepper, | |
1331 | + * Cygnus Support, drepper@cygnus.com. | |
1332 | + | |
1333 | +cosq_kernel.c, expq.c, sincos_table.c, sincosq.c, sincosq_kernel.c, | |
1334 | +sinq_kernel.c, truncq.c: | |
1335 | + Copyright (C) 1997, 1999 Free Software Foundation, Inc. | |
1336 | + | |
1337 | + The GNU C Library is free software; you can redistribute it and/or | |
1338 | + modify it under the terms of the GNU Lesser General Public | |
1339 | + License as published by the Free Software Foundation; either | |
1340 | + version 2.1 of the License, or (at your option) any later version. | |
1341 | + | |
1342 | + The GNU C Library is distributed in the hope that it will be useful, | |
1343 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
1344 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
1345 | + Lesser General Public License for more details. | |
1346 | + | |
1347 | +isinfq.c: | |
1348 | + * Written by J.T. Conklin <jtc@netbsd.org>. | |
1349 | + * Change for long double by Jakub Jelinek <jj@ultra.linux.cz> | |
1350 | + * Public domain. | |
1351 | + | |
1352 | +llroundq.c, lroundq.c, tgammaq.c: | |
1353 | + Copyright (C) 1997, 1999, 2002, 2004 Free Software Foundation, Inc. | |
1354 | + This file is part of the GNU C Library. | |
1355 | + Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and | |
1356 | + Jakub Jelinek <jj@ultra.linux.cz>, 1999. | |
1357 | + | |
1358 | + The GNU C Library is free software; you can redistribute it and/or | |
1359 | + modify it under the terms of the GNU Lesser General Public | |
1360 | + License as published by the Free Software Foundation; either | |
1361 | + version 2.1 of the License, or (at your option) any later version. | |
1362 | + | |
1363 | + The GNU C Library is distributed in the hope that it will be useful, | |
1364 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
1365 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
1366 | + Lesser General Public License for more details. | |
1367 | + | |
1368 | +log10q.c: | |
1369 | + Cephes Math Library Release 2.2: January, 1991 | |
1370 | + Copyright 1984, 1991 by Stephen L. Moshier | |
1371 | + Adapted for glibc November, 2001 | |
1372 | + | |
1373 | + This library is free software; you can redistribute it and/or | |
1374 | + modify it under the terms of the GNU Lesser General Public | |
1375 | + License as published by the Free Software Foundation; either | |
1376 | + version 2.1 of the License, or (at your option) any later version. | |
1377 | + | |
1378 | + This library is distributed in the hope that it will be useful, | |
1379 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | |
1380 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
1381 | + Lesser General Public License for more details. | |
1382 | + | |
1383 | +remaining files: | |
1384 | + | |
1385 | + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. | |
1386 | + * | |
1387 | + * Developed at SunPro, a Sun Microsystems, Inc. business. | |
1388 | + * Permission to use, copy, modify, and distribute this | |
1389 | + * software is freely granted, provided that this notice | |
1390 | + * is preserved. | |
1391 | + | |
1392 | +-------------------------------------------------------------------------------- | |
1393 | + | |
1394 | +libjava/classpath/resource/gnu/java/locale/: | |
1395 | + | |
1396 | +They are copyrighted and covered by the terms of use: | |
1397 | +http://www.unicode.org/copyright.html | |
1398 | + | |
1399 | +EXHIBIT 1 | |
1400 | +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE | |
1401 | + | |
1402 | + Unicode Data Files include all data files under the directories | |
1403 | +http://www.unicode.org/Public/ and http://www.unicode.org/reports/. | |
1404 | +Unicode Software includes any source code published in the Unicode Standard or | |
1405 | +under the directories http://www.unicode.org/Public/ and | |
1406 | +http://www.unicode.org/reports/. | |
1407 | + | |
1408 | +NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, | |
1409 | +INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), | |
1410 | +AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, | |
1411 | +ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, | |
1412 | +DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. | |
1413 | + | |
1414 | + COPYRIGHT AND PERMISSION NOTICE | |
1415 | + | |
1416 | +Copyrigh (c) 1991-2011 Unicode, Inc. All rights reserved. | |
1417 | +Distributed under the Terms of Use in http://www.unicode.org/copyright.html. | |
1418 | + | |
1419 | +Permission is hereby granted, free of charge, to any person obtaining a copy | |
1420 | +of the Unicode data files and any associated documentation (the "Data Files") | |
1421 | +or Unicode software and any associated documentation (the "Software") to deal | |
1422 | +in the Data Files or Software without restriction, including without limitation | |
1423 | +the rights to use, copy, modify, merge, publish, distribute, and/or sell copies | |
1424 | + of the Data Files or Software, and to permit persons to whom the Data Files | |
1425 | +or Software are furnished to do so, provided that (a) the above copyright notice(s) | |
1426 | +and this permission notice appear with all copies of the Data Files or Software, | |
1427 | +(b) both the above copyright notice(s) and this permission notice appear | |
1428 | +in associated documentation, and (c) there is clear notice in each modified | |
1429 | +Data File or in the Software as well as in the documentation associated with | |
1430 | +the Data File(s) or Software that the data or software has been modified. | |
1431 | + | |
1432 | +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
1433 | +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
1434 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. | |
1435 | +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE | |
1436 | + FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES | |
1437 | +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF | |
1438 | +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION | |
1439 | +WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. | |
1440 | + | |
1441 | +Except as contained in this notice, the name of a copyright holder shall not be used | |
1442 | + in advertising or otherwise to promote the sale, use or other dealings in these | |
1443 | +Data Files or Software without prior written authorization of the copyright holder. | |
1444 | + | |
1445 | +Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be registered | |
1446 | + in some jurisdictions. All other trademarks and registered trademarks mentioned | |
1447 | +herein are the property of their respective owners. | |
1448 | + | |
1449 | +-------------------------------------------------------------------------------- | |
1450 | + | |
1451 | +gcc/go/gofrontend, libgo: | |
1452 | + | |
1453 | +Copyright (c) 2009 The Go Authors. All rights reserved. | |
1454 | + | |
1455 | +Redistribution and use in source and binary forms, with or without | |
1456 | +modification, are permitted provided that the following conditions are | |
1457 | +met: | |
1458 | + | |
1459 | + * Redistributions of source code must retain the above copyright | |
1460 | +notice, this list of conditions and the following disclaimer. | |
1461 | + * Redistributions in binary form must reproduce the above | |
1462 | +copyright notice, this list of conditions and the following disclaimer | |
1463 | +in the documentation and/or other materials provided with the | |
1464 | +distribution. | |
1465 | + * Neither the name of Google Inc. nor the names of its | |
1466 | +contributors may be used to endorse or promote products derived from | |
1467 | +this software without specific prior written permission. | |
1468 | + | |
1469 | +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
1470 | +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
1471 | +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
1472 | +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
1473 | +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
1474 | +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
1475 | +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
1476 | +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
1477 | +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
1478 | +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
1479 | +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
1480 | + |
@@ -0,0 +1,46 @@ | ||
1 | +--- gcc-4.2.3-orig/ltcf-c.sh 2005-11-18 22:53:08.000000000 +0000 | |
2 | ++++ gcc-4.2.3/ltcf-c.sh 2008-03-02 02:27:01.286515021 +0000 | |
3 | +@@ -576,7 +576,9 @@ | |
4 | + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' | |
5 | + fi | |
6 | + hardcode_libdir_flag_spec='-R$libdir' | |
7 | +- hardcode_shlibpath_var=no | |
8 | ++ hardcode_shlibpath_var=yes | |
9 | ++ hardcode_minus_L=yes | |
10 | ++ hardcode_direct=yes | |
11 | + case $host_os in | |
12 | + solaris2.[0-5] | solaris2.[0-5].*) ;; | |
13 | + *) # Supported since Solaris 2.6 (maybe 2.5.1?) | |
14 | +--- gcc-4.2.3-orig/ltcf-cxx.sh 2005-07-16 02:30:53.000000000 +0000 | |
15 | ++++ gcc-4.2.3/ltcf-cxx.sh 2008-03-02 02:29:45.391494091 +0000 | |
16 | +@@ -618,7 +618,9 @@ | |
17 | + $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' | |
18 | + | |
19 | + hardcode_libdir_flag_spec='-R$libdir' | |
20 | +- hardcode_shlibpath_var=no | |
21 | ++ hardcode_shlibpath_var=yes | |
22 | ++ hardcode_minus_L=yes | |
23 | ++ hardcode_direct=yes | |
24 | + case $host_os in | |
25 | + solaris2.[0-5] | solaris2.[0-5].*) ;; | |
26 | + *) | |
27 | +@@ -682,6 +684,9 @@ | |
28 | + | |
29 | + hardcode_libdir_flag_spec='${wl}-R $wl$libdir' | |
30 | + fi | |
31 | ++ hardcode_shlibpath_var=yes | |
32 | ++ hardcode_minus_L=yes | |
33 | ++ hardcode_direct=yes | |
34 | + ;; | |
35 | + esac | |
36 | + ;; | |
37 | +--- gcc-4.2.3-orig/ltmain.sh 2006-07-06 23:24:51.000000000 +0000 | |
38 | ++++ gcc-4.2.3/ltmain.sh 2008-03-02 05:12:36.295492229 +0000 | |
39 | +@@ -3117,7 +3117,6 @@ | |
40 | + # Hardcode the library paths | |
41 | + hardcode_libdirs= | |
42 | + dep_rpath= | |
43 | +- rpath="$finalize_rpath" | |
44 | + test "$mode" != relink && rpath="$compile_rpath$rpath" | |
45 | + for libdir in $rpath; do | |
46 | + if test -n "$hardcode_libdir_flag_spec"; then |
@@ -0,0 +1,9 @@ | ||
1 | +--- gcc-4.2.3/gcc/config/sol2-10.h.orig 2009-01-23 22:52:36.811847756 +0100 | |
2 | ++++ gcc-4.2.3/gcc/config/sol2-10.h 2009-01-23 23:01:22.694640931 +0100 | |
3 | +@@ -21,3 +21,6 @@ | |
4 | + /* Solaris 10 has the float and long double forms of math functions. */ | |
5 | + #undef TARGET_C99_FUNCTIONS | |
6 | + #define TARGET_C99_FUNCTIONS 1 | |
7 | ++ | |
8 | ++/* Define this so we can compile MS code for use with WINE. */ | |
9 | ++#define HANDLE_PRAGMA_PACK_PUSH_POP |
@@ -0,0 +1,135 @@ | ||
1 | +#THIS DOC IS EARLY DRAFT STATE AND MIGHT CONTAIN TYPOS, ERRORS, EAT YOUR CAT, ...# | |
2 | + | |
3 | +##TODO## read below, is /usr/ucblib on Solaris 10 (all versions) in use or not? | |
4 | + | |
5 | +This patch is needed to enable a multi-architecture directory | |
6 | +layout. Therefore you can read instead /64/ then /amd64/ or | |
7 | +/sparcv9/ which is needed if the share the same filesystem tree. | |
8 | + | |
9 | +If a binary or library is stored in the same filesystemtree, | |
10 | +then you can use isaexec to decide which binary to use. | |
11 | + | |
12 | + isaexec looks up the architecture (i86, amd64, sparcv9, sparc....) | |
13 | + and continues loading the right binary matching the archiecture. | |
14 | + The linker code then would as well use libraries matching the | |
15 | + chosen architecture (e.g. amd64) and search for libaries in those | |
16 | + subdirectories. | |
17 | + | |
18 | + example: | |
19 | + call /sharednfspath/tools/bin/mybinary | |
20 | + which is (hard)linked to /usr/lib/isaexec | |
21 | + | |
22 | + the architecture is looked up, in this example amd64 | |
23 | + then isaexec loads this binary: | |
24 | + /sharednfspath/tools/bin/amd64/mybinary | |
25 | + | |
26 | + | |
27 | +*hardcoded -R runpath removed now* START | |
28 | +An older release of this patch contained code that *hardcoded* the runpath | |
29 | +as -R %R/usr/ucblib:%R/usr/ccs/lib:%R/lib:%R/usr/lib:%R/usr/gnu/lib | |
30 | +The template for this patch is partly a historic patch from the Sun | |
31 | +gcc-3 compiler adapted for at that time for the gcc-4 and as well | |
32 | +including /usr/gnu/lib to find gcc's runtime libary which has | |
33 | +symlinks there which point to the compiler runtime libs in | |
34 | +/usr/gcc/<major.minor>/lib directory. The idea was to *find* the | |
35 | +runtime in any case and another different reason was to *find* all | |
36 | +sorts of libs stored e.g. in the directory /usr/gnu/lib which is | |
37 | +*not* searched by the "ld" linker by default. | |
38 | +But this hardcoding of those directories has a big downside, the | |
39 | +user looses the ability to build a binary or a library with the | |
40 | +search order for libraries via runpath in an order the *user* needs. | |
41 | +Example: /usr/q++/lib:/usr/lib to find a lib of the *same* filename | |
42 | +first in the q++ path and not hitting an incompatible file somewhere | |
43 | +else. | |
44 | + | |
45 | +Therefore, the "-R" was removed almost entirely (/usr/ucblib is left, | |
46 | +might go away some day if we don't need it any more on Oracle | |
47 | +Solaris 10 or later releases). | |
48 | +*hardcoded -R runpath removed now* END | |
49 | + | |
50 | + | |
51 | +*only for reference* START | |
52 | +****another patch, gcc-07-LINK_SPEC.diff **** START | |
53 | +Another patch takes care that the binaries and libraries compiled | |
54 | +with *this* gcc version are found in a predefined directory, totally | |
55 | +free of other libaries. | |
56 | +Currently this is e.g. /usr/gcc/4.6/lib/libgcc_s.so.1 and with | |
57 | +multilib enabled this might be | |
58 | +/usr/gcc/4.6/lib/gcc/i386-pc-solaris2.11/4.6.1/amd64/libgcc_s.so.1 | |
59 | +(could become default in the future) | |
60 | + | |
61 | +Another directory is now predefined where runtime libs are searched. | |
62 | +A set of symbolic links to the runtime libs in /usr/gcc/lib/ is to | |
63 | +be placed there. Symlinks to the compiler binaries like gcc and g++ | |
64 | +go into /usr/gcc/bin/<gcc|g++> . This was the System can be upgraded | |
65 | +to a much more fresh gcc version and use updated runtime libs but | |
66 | +still use old programs linked to the older version of the libs. | |
67 | +The need the interface of a more fresh runtime lib being compatile | |
68 | +to older binaries. | |
69 | +****another patch, gcc-07-LINK_SPEC.diff **** END | |
70 | +*only for reference* END | |
71 | + | |
72 | + | |
73 | + | |
74 | + | |
75 | + | |
76 | +--- gcc-4.5.2/gcc/config/sol2.h 2010-04-16 15:33:58.000000000 +0200 | |
77 | ++++ gcc-4.5.2/gcc/config/sol2.h 2011-03-04 20:41:27.986156059 +0100 | |
78 | +@@ -156,12 +156,12 @@ | |
79 | + %{YP,*} \ | |
80 | + %{R*} \ | |
81 | + %{compat-bsd: \ | |
82 | +- %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib} \ | |
83 | +- %{!p:%{!pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib:%R/usr/lib}}} \ | |
84 | +- -R %R/usr/ucblib} \ | |
85 | ++ %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/lib:%R/usr/lib:%R/usr/gnu/lib} \ | |
86 | ++ %{!p:%{!pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib:%R/lib:%R/usr/lib:%R/usr/gnu/lib}}} \ | |
87 | ++ -R %R/usr/ucblib} \ | |
88 | + %{!compat-bsd: \ | |
89 | +- %{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib} \ | |
90 | +- %{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/usr/lib}}}}" | |
91 | ++ %{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/lib:%R/usr/lib:%R/usr/gnu/lib} \ | |
92 | ++ %{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/lib:%R/usr/lib:%R/usr/gnu/lib}}}}" | |
93 | + | |
94 | + #undef LINK_ARCH32_SPEC | |
95 | + #define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE | |
96 | +--- gcc-4.5.2/gcc/config/i386/sol2-10.h 2010-07-14 10:47:54.000000000 +0200 | |
97 | ++++ gcc-4.5.2/gcc/config/i386/sol2-10.h 2011-03-04 20:49:56.627091764 +0100 | |
98 | +@@ -109,12 +109,12 @@ | |
99 | + %{YP,*} \ | |
100 | + %{R*} \ | |
101 | + %{compat-bsd: \ | |
102 | +- %{!YP,*:%{p|pg:-Y P,/usr/ucblib/64:/usr/lib/libp/64:/lib/64:/usr/lib/64} \ | |
103 | +- %{!p:%{!pg:-Y P,/usr/ucblib/64:/lib:/usr/lib/64}}} \ | |
104 | +- -R /usr/ucblib/64} \ | |
105 | ++ %{!YP,*:%{p|pg:-Y P,/usr/ucblib/amd64:/usr/lib/libp/amd64:/lib/amd64:/usr/lib/amd64:/usr/gnu/lib/amd64} \ | |
106 | ++ %{!p:%{!pg:-Y P,/usr/ucblib/amd64:/lib/amd64:/usr/lib/amd64:/usr/gnu/lib/amd64 -R /usr/ucblib/amd64}}} \ | |
107 | ++ } \ | |
108 | + %{!compat-bsd: \ | |
109 | +- %{!YP,*:%{p|pg:-Y P,/usr/lib/libp/64:/lib/64:/usr/lib/64} \ | |
110 | +- %{!p:%{!pg:-Y P,/lib/64:/usr/lib/64}}}}" | |
111 | ++ %{!YP,*:%{p|pg:-Y P,/usr/lib/libp/amd64:/lib/amd64:/usr/lib/amd64:/usr/gnu/lib/amd64} \ | |
112 | ++ %{!p:%{!pg:-Y P,/lib/amd64:/usr/lib/amd64:/usr/gnu/lib/amd64}}}}" | |
113 | + | |
114 | + #undef LINK_ARCH64_SPEC | |
115 | + #define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE | |
116 | +--- gcc-4.5.2/gcc/config/sparc/sol2-bi.h 2010-04-02 21:54:46.000000000 +0200 | |
117 | ++++ gcc-4.5.2/gcc/config/sparc/sol2-bi.h 2011-03-04 20:47:36.202790986 +0100 | |
118 | +@@ -195,12 +195,12 @@ | |
119 | + %{YP,*} \ | |
120 | + %{R*} \ | |
121 | + %{compat-bsd: \ | |
122 | +- %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9} \ | |
123 | +- %{!p:%{!pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/sparcv9}}} \ | |
124 | +- -R %R/usr/ucblib/sparcv9} \ | |
125 | ++ %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/libp/sparcv9:%R/lib/sparcv9:%R/usr/lib/sparcv9:%R/usr/gnu/lib/sparcv9} \ | |
126 | ++ %{!p:%{!pg:-Y P,%R/usr/ucblib/sparcv9:%R/lib/sparcv9:%R/usr/lib/sparcv9:%R/usr/gnu/lib/sparcv9 -R %R/usr/ucblib/sparcv9}}} \ | |
127 | ++ } \ | |
128 | + %{!compat-bsd: \ | |
129 | +- %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9} \ | |
130 | +- %{!p:%{!pg:-Y P,%R/usr/lib/sparcv9}}}}" | |
131 | ++ %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/sparcv9:%R/lib/sparcv9:%R/usr/lib/sparcv9:%R/usr/gnu/lib/sparcv9} \ | |
132 | ++ %{!p:%{!pg:-Y P,%R/lib/sparcv9:%R/usr/lib/sparcv9:%R/usr/gnu/lib/sparcv9}}}}" | |
133 | + | |
134 | + #define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE | |
135 | + |
@@ -0,0 +1,133 @@ | ||
1 | +#THIS DOC IS EARLY DRAFT STATE AND MIGHT CONTAIN TYPOS, ERRORS, EAT YOUR CAT, ...# | |
2 | + | |
3 | +Note: the order of %D and -R/path/to/lib does not change the order in | |
4 | +the resulting binary. E.g. you can't achive with -R/usr/g++/lib that | |
5 | +the resulting binary has a runpath like /usr/g++/lib, instead this | |
6 | +would be prevented by a hardcoded -R/usr/gnu/lib and result in | |
7 | +something like runpath /usr/gnu/lib:/usr/lib:/usr/g++/lib. | |
8 | +<to-be-verified-if-still-applies> If you always want the runtime | |
9 | +in front of the runpath/rpath, do make | |
10 | +sure to specify all libdirs *AND* put the runtime-LIB at the very | |
11 | +beginning yourself! </to-be-verified-if-still-applies> | |
12 | + | |
13 | +Side-Note: No cross-compiling, it is disregarded in our case. It might | |
14 | +work if you set cross-compile switches, but you are on your own. | |
15 | +Same for relocating stuff after package install, some paths aren't | |
16 | +anymore prefixed by "R" which is used internally as kind of a macro | |
17 | +or variable. | |
18 | + | |
19 | +Side-Note: We do this to have full control over what user-space | |
20 | +libdirs are in use. The order of specifying them is in some cases | |
21 | +very important because you might have to libs of the same name, | |
22 | +but you need them for instance compiled with the gnu C++ compiler | |
23 | +and those ones are stored currently in /usr/g++/lib . So you *need* | |
24 | +this directory searched *first* and then the other ones where the | |
25 | +ncompatible libraries are stored (compiled by e.g. Studio compiler, | |
26 | +and stored in the directory /usr/lib) | |
27 | +(Example: use QT g++ compiled lib that way: | |
28 | + -R/usr/gcc/lib:/usr/g++/lib ->> compiler runtime from /usr/gcc/lib | |
29 | + and g++ compiled application lib | |
30 | + from /usr/g++/lib ) | |
31 | + | |
32 | +Side-Note: the path coded into the gcc internal setting "link_libgcc" | |
33 | +(where libgcc_s.so and libstdc++.so are searched) is currently ether | |
34 | +/usr/gcc/4.6/lib *or* /usr/gcc/lib (*or* optionally /usr/gnu/lib) | |
35 | +(the last maybe deprecated - it is reduces flexibility because you | |
36 | +might search for libgcc_s.so and automaticly include this directory | |
37 | +into searched for other libraries as well - this might be unwanted | |
38 | +to find those files!) | |
39 | + | |
40 | +Side-Note: this patch enables a gcc or g++ compiled and linked program | |
41 | +to find libgcc_s.so.1 and libstdc++.so.6 themselves! | |
42 | +(example: g++ -o testbinary_finds_libstdc++ test.cpp # libstdc++.so.6 | |
43 | +lives in /usr/gcc/4.6/lib and is found there) | |
44 | + | |
45 | + | |
46 | +Usage-Tips: | |
47 | +============ | |
48 | +If you link with "ld", then specify -R/usr/gcc/4.6/lib:/usr/gnu/lib:/usr/lib | |
49 | +in that order is the compiler lib directory *first*, make sure that | |
50 | +at least the runtime is put first. | |
51 | + | |
52 | +Choose one of of these methods to get runtime found in the right | |
53 | +place: (you want libgcc_so.1 be found, and really the file *you* | |
54 | +intended to be found :-) ) | |
55 | +(examples apply to libgcc_s.so.1 and libstdc++.so.6 as well as | |
56 | +other compiler runtime libs) | |
57 | +##TODO## add example where libgcc_s.so.1 appears to be loaded | |
58 | +# when debugged LD_DEBUG=libs ./testbin64_libgccrpath | |
59 | + | |
60 | +Method 1) | |
61 | +specify *no* (*NO*!!!) -R to the gcc commandline if gcc should do | |
62 | +the linking. | |
63 | +/usr/gnu/bin/gcc -m64 -o testbin64_libgccrpath test.c | |
64 | + | |
65 | +dump -Lv testbin64_libgccrpath | grep PATH | |
66 | + | |
67 | + **** DYNAMIC SECTION INFORMATION **** | |
68 | +.dynamic: | |
69 | +[INDEX] Tag Value | |
70 | +[...] | |
71 | +[4] RUNPATH /usr/gcc/4.6/lib/amd64 | |
72 | +[5] RPATH /usr/gcc/4.6/lib/amd64 | |
73 | +(note: now clean! there is *no* pollution any more with /usr/gnu/lib) | |
74 | +(you can add one with -R if you need) | |
75 | + | |
76 | + | |
77 | +Background: the gcc internal setting named link_libgcc which is displayed | |
78 | +with gcc -dumpspecs does put the runpath/rpath displayed above | |
79 | +into all binaries you compile. Once you specify additional -R/path/to/libdir | |
80 | +then those extra runpaths are inserted at front of runpath/rpath. | |
81 | +(Don't poison your system with lingering around "libgcc_s.so.1" and | |
82 | +"libstdc++.so.6" without and reason) | |
83 | + | |
84 | +*link_libgcc: | |
85 | +%{m64:-R /usr/gcc/4.6/lib/amd64:/usr/gcc/lib/amd64 %D}%{!m64:-R /usr/gcc/4.6/lib:/usr/gcc/lib %D} | |
86 | + | |
87 | + | |
88 | + --- OR --- | |
89 | + | |
90 | +Method 2) | |
91 | +specify *all* library directories in the order you need them. Usually | |
92 | +you *want* the runtime found first like in this example: | |
93 | +/usr/gnu/bin/gcc -m64 -o testbin64_libgccrpath \ | |
94 | + -R/usr/gcc/4.6/lib/amd64:/usr/gnu/lib/amd64 \ | |
95 | + test.c | |
96 | + | |
97 | +dump -Lv testbin64_libgccrpath | grep PATH | |
98 | + | |
99 | + **** DYNAMIC SECTION INFORMATION **** | |
100 | +.dynamic: | |
101 | +[INDEX] Tag Value | |
102 | +[...] | |
103 | +[4] RUNPATH /usr/gcc/4.6/lib/amd64:/usr/gnu/lib/amd64 | |
104 | +[5] RPATH /usr/gcc/4.6/lib/amd64:/usr/gnu/lib/amd64 | |
105 | +(note: now there is one /usr/gnu/lib/amd64, you did specify one | |
106 | +explicitly, and you told the order for searches) | |
107 | + | |
108 | +This ensures, that libgcc_s.so.1 is found first in /usr/gcc/4.6/lib/amd64 | |
109 | +and not one of the other copies lingering around in other lib directories | |
110 | + | |
111 | + | |
112 | +Setting the LINK_LIBGCC_SPEC is borrowed from the pkgsrc project where they | |
113 | +set theyr compiler to find runtimes in theyr private filesystem tree. | |
114 | + | |
115 | +MD_EXEC_PREFIX is preparing to search for compiler tools (not already in use, | |
116 | +except there would be other symlinks there, e.g. ln -s /usr/gcc/4.6/bin/gcc /usr/gcc/bin/gcc | |
117 | + | |
118 | +--- gcc-4.6.1/gcc/config/i386/sol2-10.h.orig2 2011-09-04 14:11:55.630203689 +0200 | |
119 | ++++ gcc-4.6.1/gcc/config/i386/sol2-10.h 2011-09-04 14:23:37.527910080 +0200 | |
120 | +@@ -131,6 +131,13 @@ | |
121 | + #define LINK_ARCH_SPEC TARGET_LD_EMULATION \ | |
122 | + "%{m64:" LINK_ARCH64_SPEC "}%{!m64:" LINK_ARCH32_SPEC "}" | |
123 | + | |
124 | ++/* #undef LINK_LIBGCC_SPECIAL_1 */ | |
125 | ++/* #define LINK_LIBGCC_SPECIAL_1=1 */ | |
126 | ++#undef LINK_LIBGCC_SPEC | |
127 | ++#define LINK_LIBGCC_SPEC "%{m64:" "-R /usr/gcc/4.6/lib/sparcv9:/usr/gcc/lib/sparcv9 %D" "}%{!m64:" "-R /usr/gcc/4.6/lib:/usr/gcc/lib %D" "}" | |
128 | ++#undef MD_EXEC_PREFIX | |
129 | ++#define MD_EXEC_PREFIX "/usr/gcc/bin/" | |
130 | ++#define LINK_ELIMINATE_DUPLICATE_LDIRECTORIES 0 | |
131 | + /* We do not need to search a special directory for startup files. */ | |
132 | + #undef MD_STARTFILE_PREFIX | |
133 | + |
@@ -0,0 +1,133 @@ | ||
1 | +#THIS DOC IS EARLY DRAFT STATE AND MIGHT CONTAIN TYPOS, ERRORS, EAT YOUR CAT, ...# | |
2 | + | |
3 | +Note: the order of %D and -R/path/to/lib does not change the order in | |
4 | +the resulting binary. E.g. you can't achive with -R/usr/g++/lib that | |
5 | +the resulting binary has a runpath like /usr/g++/lib, instead this | |
6 | +would be prevented by a hardcoded -R/usr/gnu/lib and result in | |
7 | +something like runpath /usr/gnu/lib:/usr/lib:/usr/g++/lib. | |
8 | +<to-be-verified-if-still-applies> If you always want the runtime | |
9 | +in front of the runpath/rpath, do make | |
10 | +sure to specify all libdirs *AND* put the runtime-LIB at the very | |
11 | +beginning yourself! </to-be-verified-if-still-applies> | |
12 | + | |
13 | +Side-Note: No cross-compiling, it is disregarded in our case. It might | |
14 | +work if you set cross-compile switches, but you are on your own. | |
15 | +Same for relocating stuff after package install, some paths aren't | |
16 | +anymore prefixed by "R" which is used internally as kind of a macro | |
17 | +or variable. | |
18 | + | |
19 | +Side-Note: We do this to have full control over what user-space | |
20 | +libdirs are in use. The order of specifying them is in some cases | |
21 | +very important because you might have to libs of the same name, | |
22 | +but you need them for instance compiled with the gnu C++ compiler | |
23 | +and those ones are stored currently in /usr/g++/lib . So you *need* | |
24 | +this directory searched *first* and then the other ones where the | |
25 | +ncompatible libraries are stored (compiled by e.g. Studio compiler, | |
26 | +and stored in the directory /usr/lib) | |
27 | +(Example: use QT g++ compiled lib that way: | |
28 | + -R/usr/gcc/lib:/usr/g++/lib ->> compiler runtime from /usr/gcc/lib | |
29 | + and g++ compiled application lib | |
30 | + from /usr/g++/lib ) | |
31 | + | |
32 | +Side-Note: the path coded into the gcc internal setting "link_libgcc" | |
33 | +(where libgcc_s.so and libstdc++.so are searched) is currently ether | |
34 | +/usr/gcc/4.6/lib *or* /usr/gcc/lib (*or* optionally /usr/gnu/lib) | |
35 | +(the last maybe deprecated - it is reduces flexibility because you | |
36 | +might search for libgcc_s.so and automaticly include this directory | |
37 | +into searched for other libraries as well - this might be unwanted | |
38 | +to find those files!) | |
39 | + | |
40 | +Side-Note: this patch enables a gcc or g++ compiled and linked program | |
41 | +to find libgcc_s.so.1 and libstdc++.so.6 themselves! | |
42 | +(example: g++ -o testbinary_finds_libstdc++ test.cpp # libstdc++.so.6 | |
43 | +lives in /usr/gcc/4.6/lib and is found there) | |
44 | + | |
45 | + | |
46 | +Usage-Tips: | |
47 | +============ | |
48 | +If you link with "ld", then specify -R/usr/gcc/4.6/lib:/usr/gnu/lib:/usr/lib | |
49 | +in that order is the compiler lib directory *first*, make sure that | |
50 | +at least the runtime is put first. | |
51 | + | |
52 | +Choose one of of these methods to get runtime found in the right | |
53 | +place: (you want libgcc_so.1 be found, and really the file *you* | |
54 | +intended to be found :-) ) | |
55 | +(examples apply to libgcc_s.so.1 and libstdc++.so.6 as well as | |
56 | +other compiler runtime libs) | |
57 | +##TODO## add example where libgcc_s.so.1 appears to be loaded | |
58 | +# when debugged LD_DEBUG=libs ./testbin64_libgccrpath | |
59 | + | |
60 | +Method 1) | |
61 | +specify *no* (*NO*!!!) -R to the gcc commandline if gcc should do | |
62 | +the linking. | |
63 | +/usr/gnu/bin/gcc -m64 -o testbin64_libgccrpath test.c | |
64 | + | |
65 | +dump -Lv testbin64_libgccrpath | grep PATH | |
66 | + | |
67 | + **** DYNAMIC SECTION INFORMATION **** | |
68 | +.dynamic: | |
69 | +[INDEX] Tag Value | |
70 | +[...] | |
71 | +[4] RUNPATH /usr/gcc/4.6/lib/amd64 | |
72 | +[5] RPATH /usr/gcc/4.6/lib/amd64 | |
73 | +(note: now clean! there is *no* pollution any more with /usr/gnu/lib) | |
74 | +(you can add one with -R if you need) | |
75 | + | |
76 | + | |
77 | +Background: the gcc internal setting named link_libgcc which is displayed | |
78 | +with gcc -dumpspecs does put the runpath/rpath displayed above | |
79 | +into all binaries you compile. Once you specify additional -R/path/to/libdir | |
80 | +then those extra runpaths are inserted at front of runpath/rpath. | |
81 | +(Don't poison your system with lingering around "libgcc_s.so.1" and | |
82 | +"libstdc++.so.6" without and reason) | |
83 | + | |
84 | +*link_libgcc: | |
85 | +%{m64:-R /usr/gcc/4.6/lib/amd64:/usr/gcc/lib/amd64 %D}%{!m64:-R /usr/gcc/4.6/lib:/usr/gcc/lib %D} | |
86 | + | |
87 | + | |
88 | + --- OR --- | |
89 | + | |
90 | +Method 2) | |
91 | +specify *all* library directories in the order you need them. Usually | |
92 | +you *want* the runtime found first like in this example: | |
93 | +/usr/gnu/bin/gcc -m64 -o testbin64_libgccrpath \ | |
94 | + -R/usr/gcc/4.6/lib/amd64:/usr/gnu/lib/amd64 \ | |
95 | + test.c | |
96 | + | |
97 | +dump -Lv testbin64_libgccrpath | grep PATH | |
98 | + | |
99 | + **** DYNAMIC SECTION INFORMATION **** | |
100 | +.dynamic: | |
101 | +[INDEX] Tag Value | |
102 | +[...] | |
103 | +[4] RUNPATH /usr/gcc/4.6/lib/amd64:/usr/gnu/lib/amd64 | |
104 | +[5] RPATH /usr/gcc/4.6/lib/amd64:/usr/gnu/lib/amd64 | |
105 | +(note: now there is one /usr/gnu/lib/amd64, you did specify one | |
106 | +explicitly, and you told the order for searches) | |
107 | + | |
108 | +This ensures, that libgcc_s.so.1 is found first in /usr/gcc/4.6/lib/amd64 | |
109 | +and not one of the other copies lingering around in other lib directories | |
110 | + | |
111 | + | |
112 | +Setting the LINK_LIBGCC_SPEC is borrowed from the pkgsrc project where they | |
113 | +set theyr compiler to find runtimes in theyr private filesystem tree. | |
114 | + | |
115 | +MD_EXEC_PREFIX is preparing to search for compiler tools (not already in use, | |
116 | +except there would be other symlinks there, e.g. ln -s /usr/gcc/4.6/bin/gcc /usr/gcc/bin/gcc | |
117 | + | |
118 | +--- gcc-4.6.1/gcc/config/i386/sol2-10.h.orig2 2011-09-04 14:11:55.630203689 +0200 | |
119 | ++++ gcc-4.6.1/gcc/config/i386/sol2-10.h 2011-09-04 14:23:37.527910080 +0200 | |
120 | +@@ -131,6 +131,13 @@ | |
121 | + #define LINK_ARCH_SPEC TARGET_LD_EMULATION \ | |
122 | + "%{m64:" LINK_ARCH64_SPEC "}%{!m64:" LINK_ARCH32_SPEC "}" | |
123 | + | |
124 | ++/* #undef LINK_LIBGCC_SPECIAL_1 */ | |
125 | ++/* #define LINK_LIBGCC_SPECIAL_1=1 */ | |
126 | ++#undef LINK_LIBGCC_SPEC | |
127 | ++#define LINK_LIBGCC_SPEC "%{m64:" "-R /usr/gcc/4.6/lib/amd64:/usr/gcc/lib/amd64 %D" "}%{!m64:" "-R /usr/gcc/4.6/lib:/usr/gcc/lib %D" "}" | |
128 | ++#undef MD_EXEC_PREFIX | |
129 | ++#define MD_EXEC_PREFIX "/usr/gcc/bin/" | |
130 | ++#define LINK_ELIMINATE_DUPLICATE_LDIRECTORIES 0 | |
131 | + /* We do not need to search a special directory for startup files. */ | |
132 | + #undef MD_STARTFILE_PREFIX | |
133 | + |
@@ -0,0 +1,131 @@ | ||
1 | +--- gcc-4.6.2/fixincludes/fixincl.x 2010-11-09 11:26:09.000000000 +0100 | |
2 | ++++ gcc-4.6.2-patch/fixincludes/fixincl.x 2011-12-02 13:08:56.282070301 +0100 | |
3 | +@@ -15,7 +15,7 @@ | |
4 | + * certain ANSI-incompatible system header files which are fixed to work | |
5 | + * correctly with ANSI C and placed in a directory that GNU C will search. | |
6 | + * | |
7 | +- * This file contains 210 fixup descriptions. | |
8 | ++ * This file contains 211 fixup descriptions. | |
9 | + * | |
10 | + * See README for more information. | |
11 | + * | |
12 | +@@ -6969,6 +6969,43 @@ | |
13 | + | |
14 | + /* * * * * * * * * * * * * * * * * * * * * * * * * * | |
15 | + * | |
16 | ++ * Description of Solaris_Posix_Spawn_Restrict fix | |
17 | ++ */ | |
18 | ++tSCC zSolaris_Posix_Spawn_RestrictName[] = | |
19 | ++ "solaris_posix_spawn_restrict"; | |
20 | ++ | |
21 | ++/* | |
22 | ++ * File name selection pattern | |
23 | ++ */ | |
24 | ++tSCC zSolaris_Posix_Spawn_RestrictList[] = | |
25 | ++ "spawn.h\0"; | |
26 | ++/* | |
27 | ++ * Machine/OS name selection pattern | |
28 | ++ */ | |
29 | ++tSCC* apzSolaris_Posix_Spawn_RestrictMachs[] = { | |
30 | ++ "*-*-solaris2*", | |
31 | ++ (const char*)NULL }; | |
32 | ++ | |
33 | ++/* | |
34 | ++ * content selection pattern - do fix if pattern found | |
35 | ++ */ | |
36 | ++tSCC zSolaris_Posix_Spawn_RestrictSelect0[] = | |
37 | ++ "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)"; | |
38 | ++ | |
39 | ++#define SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT 1 | |
40 | ++static tTestDesc aSolaris_Posix_Spawn_RestrictTests[] = { | |
41 | ++ { TT_EGREP, zSolaris_Posix_Spawn_RestrictSelect0, (regex_t*)NULL }, }; | |
42 | ++ | |
43 | ++/* | |
44 | ++ * Fix Command Arguments for Solaris_Posix_Spawn_Restrict | |
45 | ++ */ | |
46 | ++static const char* apzSolaris_Posix_Spawn_RestrictPatch[] = { | |
47 | ++ "format", | |
48 | ++ "%1*_RESTRICT_KYWD %2%3", | |
49 | ++ (char*)NULL }; | |
50 | ++ | |
51 | ++/* * * * * * * * * * * * * * * * * * * * * * * * * * | |
52 | ++ * | |
53 | + * Description of Solaris_Stdio_Tag fix | |
54 | + */ | |
55 | + tSCC zSolaris_Stdio_TagName[] = | |
56 | +@@ -8552,9 +8589,9 @@ | |
57 | + * | |
58 | + * List of all fixes | |
59 | + */ | |
60 | +-#define REGEX_COUNT 249 | |
61 | ++#define REGEX_COUNT 250 | |
62 | + #define MACH_LIST_SIZE_LIMIT 181 | |
63 | +-#define FIX_COUNT 210 | |
64 | ++#define FIX_COUNT 211 | |
65 | + | |
66 | + /* | |
67 | + * Enumerate the fixes | |
68 | +@@ -8731,6 +8768,7 @@ | |
69 | + SOLARIS_INT_LIMITS_2_FIXIDX, | |
70 | + SOLARIS_INT_LIMITS_3_FIXIDX, | |
71 | + SOLARIS_INT_TYPES_FIXIDX, | |
72 | ++ SOLARIS_POSIX_SPAWN_RESTRICT_FIXIDX, | |
73 | + SOLARIS_STDIO_TAG_FIXIDX, | |
74 | + SOLARIS_SYS_VA_LIST_FIXIDX, | |
75 | + STATSSWTCH_FIXIDX, | |
76 | +@@ -9628,6 +9666,11 @@ | |
77 | + SOLARIS_INT_TYPES_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, | |
78 | + aSolaris_Int_TypesTests, apzSolaris_Int_TypesPatch, 0 }, | |
79 | + | |
80 | ++ { zSolaris_Posix_Spawn_RestrictName, zSolaris_Posix_Spawn_RestrictList, | |
81 | ++ apzSolaris_Posix_Spawn_RestrictMachs, | |
82 | ++ SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, | |
83 | ++ aSolaris_Posix_Spawn_RestrictTests, apzSolaris_Posix_Spawn_RestrictPatch, 0 }, | |
84 | ++ | |
85 | + { zSolaris_Stdio_TagName, zSolaris_Stdio_TagList, | |
86 | + apzSolaris_Stdio_TagMachs, | |
87 | + SOLARIS_STDIO_TAG_TEST_CT, FD_MACH_ONLY, | |
88 | +--- gcc-4.6.2/fixincludes/inclhack.def 2010-11-09 11:26:09.000000000 +0100 | |
89 | ++++ gcc-4.6.2-patch/fixincludes/inclhack.def 2011-12-02 13:06:53.974190573 +0100 | |
90 | +@@ -3693,6 +3693,23 @@ | |
91 | + | |
92 | + | |
93 | + /* | |
94 | ++ * Solaris 10+ <spawn.h> uses char *const argv[_RESTRICT_KYWD] in the | |
95 | ++ * posix_spawn declarations, which doesn't work with C++. | |
96 | ++ */ | |
97 | ++fix = { | |
98 | ++ hackname = solaris_posix_spawn_restrict; | |
99 | ++ files = spawn.h; | |
100 | ++ mach = '*-*-solaris2*'; | |
101 | ++ c_fix = format; | |
102 | ++ c_fix_arg = "%1*_RESTRICT_KYWD %2%3"; | |
103 | ++ select = "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)"; | |
104 | ++ test_text = | |
105 | ++ "char *const argv[_RESTRICT_KYWD],\n" | |
106 | ++ "char *const envp[_RESTRICT_KYWD]);"; | |
107 | ++}; | |
108 | ++ | |
109 | ++ | |
110 | ++/* | |
111 | + * Sun Solaris 8 has what appears to be some gross workaround for | |
112 | + * some old version of their c++ compiler. G++ doesn't want it | |
113 | + * either, but doesn't want to be tied to SunPRO version numbers. | |
114 | +--- gcc-4.6.2/fixincludes/spawn.h 1970-01-01 01:00:00.000000000 +0100 | |
115 | ++++ gcc-4.6.2-patch/fixincludes/spawn.h 2011-12-02 13:04:16.806543614 +0100 | |
116 | +@@ -0,0 +1,15 @@ | |
117 | ++/* DO NOT EDIT THIS FILE. | |
118 | ++ | |
119 | ++ It has been auto-edited by fixincludes from: | |
120 | ++ | |
121 | ++ "fixinc/tests/inc/spawn.h" | |
122 | ++ | |
123 | ++ This had to be done to correct non-standard usages in the | |
124 | ++ original, manufacturer supplied header file. */ | |
125 | ++ | |
126 | ++ | |
127 | ++ | |
128 | ++#if defined( SOLARIS_POSIX_SPAWN_RESTRICT_CHECK ) | |
129 | ++char *const *_RESTRICT_KYWD argv, | |
130 | ++char *const *_RESTRICT_KYWD envp); | |
131 | ++#endif /* SOLARIS_POSIX_SPAWN_RESTRICT_CHECK */ |