Annotation of /trunk/linux-libc-headers/headers.sh
Parent Directory | Revision Log
Revision 393 -
(hide annotations)
(download)
(as text)
Mon Oct 2 10:17:08 2006 UTC (17 years, 11 months ago) by niro
File MIME type: application/x-sh
File size: 46276 byte(s)
Mon Oct 2 10:17:08 2006 UTC (17 years, 11 months ago) by niro
File MIME type: application/x-sh
File size: 46276 byte(s)
linux-libc-headers creation script from headers.cross-lfs.org svn-rev 127
1 | niro | 393 | #!/bin/bash |
2 | # | ||
3 | # Minimal Sanitized Headers - Version 00.91 | ||
4 | # | ||
5 | # Submit bugreports via http://headers.cross-lfs.org | ||
6 | # | ||
7 | # | ||
8 | # By Jim Gifford (scripts@jg555.com) | ||
9 | # Ken Moffat (ken@linxufromscratch.org) | ||
10 | # Seth Klein | ||
11 | # | ||
12 | # Based on research and work by Jürg Billeter and Mariusz Mazur | ||
13 | # | ||
14 | # Community Member Acknowledgement | ||
15 | # | ||
16 | # Ryan Oliver | ||
17 | # Joe Ciccone | ||
18 | # Matt Darcy | ||
19 | # Greg Schafer | ||
20 | # Tushar Teredesai | ||
21 | # D.J. Lucas | ||
22 | # Jeremy Huntwork | ||
23 | # Andrew Benton | ||
24 | # Florian Schanda | ||
25 | # Theo Schneider | ||
26 | # Roberto Nibali | ||
27 | # | ||
28 | # | ||
29 | # As of Version 00.26 we no longer link to glibc headers, we link strictly | ||
30 | # use Linux Headers. Glibc, dietlibc, and uclibc use byteswap.h which is | ||
31 | # required for various headers. We have elected to link with the existing | ||
32 | # ones. | ||
33 | # | ||
34 | # | ||
35 | # LFS/CLFS Build notes | ||
36 | # | ||
37 | # You will also need to copy over asm-generic to ensure you have all the | ||
38 | # necessary headers. In LLH they combine these into the asm-architecture | ||
39 | # so there is no asm-generic. | ||
40 | # | ||
41 | # | ||
42 | # Programs Required | ||
43 | # | ||
44 | # This version requires unifdef - get it at | ||
45 | # | ||
46 | # http://ftp.debian.org/debian/pool/main/u/unifdef/ | ||
47 | # | ||
48 | # | ||
49 | # Conversion Process | ||
50 | # | ||
51 | # Removal of __KERNEL__ - These tags are only during the build of the kernel | ||
52 | # | ||
53 | # Conversion u and s variables to userspace variables is the following link | ||
54 | # for more information http://www.linuxdevices.com/articles/AT5340618290.html | ||
55 | # | ||
56 | # Removal of <linux/config.h> - Not needed for userspace contains kernel build | ||
57 | # information. | ||
58 | # | ||
59 | # Conversion of linux to __linux__ - converts to a userspace usable | ||
60 | # | ||
61 | # Removal of __iomem | ||
62 | # for more information http://lwn.net/Articles/102232/ | ||
63 | # | ||
64 | # version.h is created so that all the kernel versioning information | ||
65 | # is available | ||
66 | # | ||
67 | # compiler.h is removed | ||
68 | # | ||
69 | # | ||
70 | # I386 Specific | ||
71 | # | ||
72 | # | ||
73 | # MIPS Specific | ||
74 | # | ||
75 | # CONFIG_64BIT and CONFIG_32BIT are not defined in userspace so we use | ||
76 | # __mips64. | ||
77 | # | ||
78 | # Make atomic.h the same as LLH. | ||
79 | # | ||
80 | # | ||
81 | # Sparc Specific | ||
82 | # | ||
83 | # RAW Headers use variables from the configuration to get the PAGE SIZE | ||
84 | # so we use a function that exists in glibc to figure it out. | ||
85 | # | ||
86 | # | ||
87 | # Creation of biarch headers for multilib builds | ||
88 | # | ||
89 | # Links that inspired my creation | ||
90 | # | ||
91 | # http://kerneltrap.org/node/365 | ||
92 | |||
93 | usage() { | ||
94 | echo "usage:" | ||
95 | echo " $0 kernel_version {optional}" | ||
96 | echo "example: $0" | ||
97 | echo "" | ||
98 | echo "Optional:" | ||
99 | echo " dump - dump headers name then create headers package" | ||
100 | echo " dumponly - dump headers name then exit" | ||
101 | echo " file - creates a file list" | ||
102 | exit 255 | ||
103 | } | ||
104 | |||
105 | make_headers() { | ||
106 | for headers in $HEADERS; do | ||
107 | cd $ORIGDIR | ||
108 | HDR_DIRS=`find * -type d | grep $TYPE | cut -f1 -d'/' | sort -u` | ||
109 | for locate in $HDR_DIRS; do | ||
110 | cd $CURRENT_DIR/linux-headers-$VERSION.orig | ||
111 | LOCATE=`find */$locate -type f | grep -F "/$headers" | sort -u` | ||
112 | for file in $LOCATE; do | ||
113 | TEST1=`echo $file | grep -c /$TYPE/` | ||
114 | TEST2=`echo $file | grep -c /$TYPE-` | ||
115 | if [ "$TEST1" = "0" -a "$TEST2" = "0" ]; then | ||
116 | break | ||
117 | fi | ||
118 | header="$CURRENT_DIR/linux-headers-$VERSION/$file" | ||
119 | |||
120 | echo "Processing $file..." | ||
121 | |||
122 | install -m 644 "$file" "$header" | ||
123 | |||
124 | if grep -c __KERNEL__ "$header" >/dev/null; then | ||
125 | unifdef -e -U__KERNEL__ $header > $header.new | ||
126 | mv $header.new $header | ||
127 | fi | ||
128 | |||
129 | if [ "$DONT_CHANGE" = "no" ]; then | ||
130 | sed -e 's/\b[us]\(8\|16\|32\|64\)\b/__&/g' \ | ||
131 | -e 's/\b__\(be\|le\)\(16\|32\|64\)\b/__u\2/g' \ | ||
132 | -e 's/\b__force\b//g' \ | ||
133 | -e 's/\b__iomem\b//g' \ | ||
134 | -e 's/\b__attribute_const__\b//g' \ | ||
135 | -e 's/\b__user\b//g' \ | ||
136 | -e 's/ inline / __inline__ /g' \ | ||
137 | -e 's/__kernel_sockaddr_/sockaddr_/g' \ | ||
138 | $header > $header.new | ||
139 | mv $header.new $header | ||
140 | fi | ||
141 | |||
142 | sed -e '/#include <asm.acpi.h>/d' \ | ||
143 | -e '/#include <asm.archparam.h>/d' \ | ||
144 | -e '/#include <asm.asm-offsets.h>/d' \ | ||
145 | -e '/#include <asm.bug.h>/d' \ | ||
146 | -e '/#include <asm.compiler.h>/d' \ | ||
147 | -e '/#include <asm.cpu-info.h>/d' \ | ||
148 | -e '/#include <asm.current.h>/d' \ | ||
149 | -e '/#include <asm.dsp.h>/d' \ | ||
150 | -e '/#include <asm.hack.h>/d' \ | ||
151 | -e '/#include <asm.hazards.h>/d' \ | ||
152 | -e '/#include <asm.hpet.h>/d' \ | ||
153 | -e '/#include <asm.ide.h>/d' \ | ||
154 | -e '/#include <asm.interrupt.h>/d' \ | ||
155 | -e '/#include <asm.machvec_init.h>/d' \ | ||
156 | -e '/#include <asm.mtd-xip.h>/d' \ | ||
157 | -e '/#include <asm.offset.h>/d' \ | ||
158 | -e '/#include <asm.offsets.h>/d' \ | ||
159 | -e '/#include <asm.page.h>/d' \ | ||
160 | -e '/#include <asm.percpu.h>/d' \ | ||
161 | -e '/#include <asm.prefetch.h>/d' \ | ||
162 | -e '/#include <asm.proc-fns.h>/d' \ | ||
163 | -e '/#include <asm.rwclock.h>/d' \ | ||
164 | -e '/#include <asm.sections.h>/d' \ | ||
165 | -e '/#include <asm.spinlock_types.h>/d' \ | ||
166 | -e '/#include <asm.thread_info.h>/d' \ | ||
167 | -e '/#include <asm.uaccess.h>/d' \ | ||
168 | -e '/#include <asm.virtconvert.h>/d' \ | ||
169 | -e '/#include <asm.arch.at91rm9200.h>/d' \ | ||
170 | -e '/#include <asm.arch.at91rm9200_sys.h>/d' \ | ||
171 | -e '/#include <asm.arch.atomic.h>/d' \ | ||
172 | -e '/#include <asm.arch.cm.h>/d' \ | ||
173 | -e '/#include <asm.arch.hwregs.reg_map.h>/d' \ | ||
174 | -e '/#include <asm.arch.hwregs.reg_rdwr.h>/d' \ | ||
175 | -e '/#include <asm.arch.hwregs.timer_defs.h>/d' \ | ||
176 | -e '/#include <asm.arch.idle.h>/d' \ | ||
177 | -e '/#include <asm.arch.prcm.h>/d' \ | ||
178 | -e '/#include <asm.mach.ide.h>/d' \ | ||
179 | -e '/#include <kmalloc.h>/d' \ | ||
180 | -e '/#include <linux.autoconf.h>/d' \ | ||
181 | -e '/#include <linux.bio.h>/d' \ | ||
182 | -e '/#include <linux.blkdev.h>/d' \ | ||
183 | -e '/#include <linux.clk.h>/d' \ | ||
184 | -e '/#include <linux.compiler.h>/d' \ | ||
185 | -e '/#include <linux.config.h>/d' \ | ||
186 | -e '/#include <linux.completion.h>/d' \ | ||
187 | -e '/#include <linux.cpumask.h>/d' \ | ||
188 | -e '/#include <linux.crc-ccitt.h>/d' \ | ||
189 | -e '/#include <linux.dmaengine.h>/d' \ | ||
190 | -e '/#include <linux.dma-mapping.h>/d' \ | ||
191 | -e '/#include <linux.genetlink.h>/d' \ | ||
192 | -e '/#include <linux.hardirq.h>/d' \ | ||
193 | -e '/#include <linux.kref.h>/d' \ | ||
194 | -e '/#include <linux.kobject.h>/d' \ | ||
195 | -e '/#include <linux.mempolicy.h>/d' \ | ||
196 | -e '/#include <linux.mutex.h>/d' \ | ||
197 | -e '/#include <linux.nodemask.h>/d' \ | ||
198 | -e '/#include <linux.profile.h>/d' \ | ||
199 | -e '/#include <linux.rcupdate.h>/d' \ | ||
200 | -e '/#include <linux.rwsem.h>/d' \ | ||
201 | -e '/#include <linux.seq_file.h>/d' \ | ||
202 | -e '/#include <linux.smp.h>/d' \ | ||
203 | -e '/#include <linux.spinlock.h>/d' \ | ||
204 | -e '/#include <linux.spinlock_types.h>/d' \ | ||
205 | -e '/#include <linux.stat.h>/d' \ | ||
206 | -e '/#include <linux.string.h>/d' \ | ||
207 | -e '/#include <linux.sunrpc.msg_prot.h>/d' \ | ||
208 | -e '/#include <linux.textsearch.h>/d' \ | ||
209 | -e '/#include <linux.thread_info.h>/d' \ | ||
210 | -e '/#include <linux.timer.h>/d' \ | ||
211 | -e '/#include <linux.topology.h>/d' \ | ||
212 | -e '/#include <linux.transport_class.h>/d' \ | ||
213 | -e '/#include <linux.uaccess.h>/d' \ | ||
214 | -e '/#include <linux.byteorder.generic.h>/d' \ | ||
215 | -e '/endif .* __KERNEL__/d' \ | ||
216 | -e 's/|| !defined(__KERNEL__)//g' \ | ||
217 | -e 's/!defined(__KERNEL__) ..//g' \ | ||
218 | -e 's/|| defined(__KERNEL__)//g' \ | ||
219 | -e 's/defined(__KERNEL__) ..//g' \ | ||
220 | -e 's/#ifdef linux/#ifdef __linux__/g' \ | ||
221 | -e 's/#ifndef linux/#ifndef __linux__/g' \ | ||
222 | -e '/#include <asm.machtypes.h>/d' \ | ||
223 | -e '/#include <asm.serial-bigsur.h>/d' \ | ||
224 | -e '/#include <asm.serial-ec3104.h>/d' \ | ||
225 | $header > $header.new | ||
226 | mv $header.new $header | ||
227 | |||
228 | case $header in *mips*) | ||
229 | sed -e 's/#ifdef CONFIG_32BIT/#ifndef __mips64/g' \ | ||
230 | -e 's/#ifdef CONFIG_64BIT/#ifdef __mips64/g' \ | ||
231 | $header > $header.new | ||
232 | mv $header.new $header | ||
233 | esac | ||
234 | |||
235 | case $header in *byteorder.h*) | ||
236 | unifdef -e -U__GNUC__ $header > $header.new | ||
237 | mv $header.new $header | ||
238 | esac | ||
239 | |||
240 | sed -e '/^$/N;/\n$/D' \ | ||
241 | $header > $header.new | ||
242 | |||
243 | install -m 644 $header.new $header | ||
244 | rm $header.new | ||
245 | done | ||
246 | done | ||
247 | done | ||
248 | } | ||
249 | |||
250 | clean_header() { | ||
251 | header=$1 | ||
252 | sed -e '/^$/N;/\n$/D' \ | ||
253 | $header > $header.new | ||
254 | mv $header.new $header | ||
255 | } | ||
256 | |||
257 | create_linux_header() { | ||
258 | echo "Creating include/$header..." | ||
259 | new_header=$NEWDIR/$header | ||
260 | echo -n "#ifndef LINUX_" > $new_header | ||
261 | HEADING=`echo $header | tr '[:lower:]' '[:upper:]' | cut -f2 -d/ | cut -f1 -d.` | ||
262 | echo -n "$HEADING" >> $new_header | ||
263 | echo "_H" >> $new_header | ||
264 | echo "" >> $new_header | ||
265 | echo "$CONTENT" >> $new_header | ||
266 | echo "" >> $new_header | ||
267 | echo "#endif" >> $new_header | ||
268 | } | ||
269 | |||
270 | create_asm_header() { | ||
271 | for dir in $DIRS; do | ||
272 | echo "Creating include/$dir/$header..." | ||
273 | DEFINE3="_H" | ||
274 | if [ "$dir" = "asm-alpha" ]; then | ||
275 | DEFINE1="__ALPHA_" | ||
276 | fi | ||
277 | if [ "$dir" = "asm-arm" -o "$dir" = "asm-arm26" ]; then | ||
278 | DEFINE1="_ASM_ARM_" | ||
279 | fi | ||
280 | if [ "$dir" = "asm-cris" ]; then | ||
281 | DEFINE1="_ASM_CRIS_" | ||
282 | fi | ||
283 | if [ "$dir" = "asm-frv" -o "$dir" = "asm-i386" -o \ | ||
284 | "$dir" = "asm-mips" -o "$dir" = "asm-parisc" -o \ | ||
285 | "$dir" = "asm-x86_64" ]; then | ||
286 | DEFINE1="_ASM_" | ||
287 | fi | ||
288 | if [ "$dir" = "asm-h8300" ]; then | ||
289 | DEFINE1="_H8300_" | ||
290 | fi | ||
291 | if [ "$dir" = "asm-ia64" ]; then | ||
292 | DEFINE1="_ASM_IA64_" | ||
293 | fi | ||
294 | if [ "$dir" = "asm-m32r" ]; then | ||
295 | DEFINE1="_ASM_M32R_" | ||
296 | fi | ||
297 | if [ "$dir" = "asm-m68k" ]; then | ||
298 | DEFINE1="_" | ||
299 | fi | ||
300 | if [ "$dir" = "asm-m68knommu" ]; then | ||
301 | DEFINE1="_M68KNOMMU_" | ||
302 | fi | ||
303 | if [ "$dir" = "asm-powerpc" ]; then | ||
304 | DEFINE1="_ASM_POWERPC_" | ||
305 | fi | ||
306 | if [ "$dir" = "asm-ppc" ]; then | ||
307 | DEFINE1="_ASM_PPC_" | ||
308 | fi | ||
309 | if [ "$dir" = "asm-s390" ]; then | ||
310 | DEFINE1="_S390_" | ||
311 | fi | ||
312 | if [ "$dir" = "asm-sh" ]; then | ||
313 | DEFINE1="__ASM_" | ||
314 | fi | ||
315 | if [ "$dir" = "asm-sh64" ]; then | ||
316 | DEFINE1="__ASM_SH64_" | ||
317 | fi | ||
318 | if [ "$dir" = "asm-sparc" ]; then | ||
319 | DEFINE1="__SPARC_" | ||
320 | fi | ||
321 | if [ "$dir" = "asm-sparc64" ]; then | ||
322 | DEFINE1="__SPARC64_" | ||
323 | fi | ||
324 | if [ "$dir" = "asm-um" ]; then | ||
325 | DEFINE1="__UM_" | ||
326 | fi | ||
327 | if [ "$dir" = "asm-v850" ]; then | ||
328 | DEFINE1="__V850_" | ||
329 | DEFINE3="_H__" | ||
330 | fi | ||
331 | if [ "$dir" = "asm-xtensa" ]; then | ||
332 | DEFINE1="_XTENSA_" | ||
333 | fi | ||
334 | DEFINE2=`echo $header | tr '[:lower:]' '[:upper:]' | cut -f2 -d/ | cut -f1 -d.` | ||
335 | echo -n "#ifndef $DEFINE1" > $NEWDIR/$dir/$header | ||
336 | echo -n "$DEFINE2" >> $NEWDIR/$dir/$header | ||
337 | echo "$DEFINE3" >> $NEWDIR/$dir/$header | ||
338 | echo "" >> $NEWDIR/$dir/$header | ||
339 | echo "$CONTENT" >> $NEWDIR/$dir/$header | ||
340 | echo "" >> $NEWDIR/$dir/$header | ||
341 | echo "#endif" >> $NEWDIR/$dir/$header | ||
342 | done | ||
343 | } | ||
344 | |||
345 | multilib_stubs() { | ||
346 | cd $CURRENT_DIR | ||
347 | STUBARCH1=$1 | ||
348 | STUBARCH2=$2 | ||
349 | STUBSWITCH=$3 | ||
350 | HDRS="" | ||
351 | DIRS="" | ||
352 | for arch in ${STUBARCH1} ${STUBARCH2}; do | ||
353 | cd $NEWDIR/asm-${arch} | ||
354 | dirs=`find . -type d -printf "%P\n"` | ||
355 | hdrs=`find . -type f -name \*.h -printf "%P\n"` | ||
356 | DIRS=`echo ${DIRS} ${dirs} | sort -u` | ||
357 | HDRS=`echo ${HDRS} ${hdrs} | sort -u` | ||
358 | done | ||
359 | |||
360 | cd $CURRENT_DIR | ||
361 | # Create directories (if required) under include/asm | ||
362 | install -d $NEWDIR/asm-${STUBARCH1}-biarch | ||
363 | if [ "${DIRS}" != "" ]; then | ||
364 | for dir in ${DIRS}; do | ||
365 | install -d $NEWDIR/asm-${STUBARCH1}-biarch/${dir} | ||
366 | done | ||
367 | fi | ||
368 | |||
369 | for hdr in ${HDRS}; do | ||
370 | # include barrier | ||
371 | name=`basename ${hdr} | tr [a-z]. [A-Z]_` | ||
372 | cat > $NEWDIR/asm-${STUBARCH1}-biarch/${hdr} << EOF | ||
373 | #ifndef __STUB__${name}__ | ||
374 | #define __STUB__${name}__ | ||
375 | |||
376 | EOF | ||
377 | # check whether we exist in arch1 | ||
378 | if [ -f linux-headers-$VERSION/include/asm-${STUBARCH1}/${hdr} ]; then | ||
379 | # check if we also exist arch2 | ||
380 | if [ -f linux-headers-$VERSION/include/asm-${STUBARCH2}/${hdr} ]; then | ||
381 | # we exist in both | ||
382 | cat >> $NEWDIR/asm-${STUBARCH1}-biarch/${hdr} << EOF | ||
383 | #ifdef ${STUBSWITCH} | ||
384 | #include <asm-${STUBARCH1}/${hdr}> | ||
385 | #else | ||
386 | #include <asm-${STUBARCH2}/${hdr}> | ||
387 | #endif | ||
388 | EOF | ||
389 | else | ||
390 | # we only exist in arch1 | ||
391 | cat >> $NEWDIR/asm-${STUBARCH1}-biarch/${hdr} << EOF | ||
392 | #ifdef ${STUBSWITCH} | ||
393 | #include <asm-${STUBARCH1}/${hdr}> | ||
394 | #endif | ||
395 | EOF | ||
396 | fi | ||
397 | # end arch1 | ||
398 | else | ||
399 | # if we get here we only exist in arch2 | ||
400 | cat >> $NEWDIR/asm-${STUBARCH1}-biarch/${hdr} << EOF | ||
401 | #ifndef ${STUBSWITCH} | ||
402 | #include <asm-${STUBARCH2}/${hdr}> | ||
403 | #endif | ||
404 | EOF | ||
405 | fi | ||
406 | cat >> $NEWDIR/asm-${STUBARCH1}-biarch/${hdr} << EOF | ||
407 | |||
408 | #endif /* __STUB__${name}__ */ | ||
409 | EOF | ||
410 | done | ||
411 | } | ||
412 | |||
413 | change_header() { | ||
414 | FIX_HEADER=$NEWDIR/linux/$HEADER_FILE | ||
415 | echo "Fixing include/linux/$HEADER_FILE..." | ||
416 | sed -e "s/#define $HEADER_NAME/#define $HEADER_NAME\n\nNeXtLiNe/" $FIX_HEADER > $FIX_HEADER.new | ||
417 | cp $FIX_HEADER.new $FIX_HEADER | ||
418 | sed -e "s@NeXtLiNe@$HEADER_UPDATE@" $FIX_HEADER > $FIX_HEADER.new | ||
419 | mv $FIX_HEADER.new $FIX_HEADER | ||
420 | } | ||
421 | |||
422 | # Input Check | ||
423 | # | ||
424 | if [ "$1" = "" ]; then | ||
425 | usage | ||
426 | fi | ||
427 | |||
428 | # Setup Version | ||
429 | # | ||
430 | VERSION=$1 | ||
431 | shift | ||
432 | |||
433 | while [ $# -gt 0 ]; do | ||
434 | case $1 in | ||
435 | |||
436 | file) | ||
437 | FILE="yes" | ||
438 | ;; | ||
439 | |||
440 | dump) | ||
441 | DUMP="yes" | ||
442 | ;; | ||
443 | |||
444 | dumponly) | ||
445 | DUMP="yes" | ||
446 | DUMPONLY="yes" | ||
447 | ;; | ||
448 | |||
449 | *) | ||
450 | usage | ||
451 | ;; | ||
452 | |||
453 | esac | ||
454 | shift | ||
455 | done | ||
456 | |||
457 | # Checking for all the tools we need | ||
458 | TEST=`whereis cp | cut -f2 -d:` | ||
459 | if [ "$TEST" = "" ]; then | ||
460 | echo "Missing cp." | ||
461 | exit 254 | ||
462 | fi | ||
463 | TEST=`whereis install | cut -f2 -d:` | ||
464 | if [ "$TEST" = "" ]; then | ||
465 | echo "Missing install." | ||
466 | exit 253 | ||
467 | fi | ||
468 | TEST=`whereis mv | cut -f2 -d:` | ||
469 | if [ "$TEST" = "" ]; then | ||
470 | echo "Missing mv." | ||
471 | exit 252 | ||
472 | fi | ||
473 | TEST=`whereis pwd | cut -f2 -d:` | ||
474 | if [ "$TEST" = "" ]; then | ||
475 | echo "Missing pwd." | ||
476 | exit 251 | ||
477 | fi | ||
478 | TEST=`whereis sed | cut -f2 -d:` | ||
479 | if [ "$TEST" = "" ]; then | ||
480 | echo "Missing sed." | ||
481 | exit 250 | ||
482 | fi | ||
483 | TEST=`whereis rm | cut -f2 -d:` | ||
484 | if [ "$TEST" = "" ]; then | ||
485 | echo "Missing rm." | ||
486 | exit 249 | ||
487 | fi | ||
488 | TEST=`whereis rmdir | cut -f2 -d:` | ||
489 | if [ "$TEST" = "" ]; then | ||
490 | echo "Missing rmdir." | ||
491 | exit 248 | ||
492 | fi | ||
493 | TEST=`whereis tar | cut -f2 -d:` | ||
494 | if [ "$TEST" = "" ]; then | ||
495 | echo "Missing tar." | ||
496 | exit 247 | ||
497 | fi | ||
498 | TEST=`whereis unifdef | cut -f2 -d:` | ||
499 | if [ "$TEST" = "" ]; then | ||
500 | echo "Missing unifdef." | ||
501 | exit 246 | ||
502 | fi | ||
503 | TEST=`whereis wget | cut -f2 -d:` | ||
504 | if [ "$TEST" = "" ]; then | ||
505 | echo "Missing wget." | ||
506 | exit 245 | ||
507 | fi | ||
508 | |||
509 | # Set Linux Version | ||
510 | P1=`echo $VERSION | cut -f1 -d.` | ||
511 | P2=`echo $VERSION | cut -f2 -d.` | ||
512 | P3=`echo $VERSION | cut -f3 -d.` | ||
513 | LINUXVERSION="$P1.$P2" | ||
514 | |||
515 | # Our Working Directories | ||
516 | CURRENT_DIR=`pwd -P` | ||
517 | ORIGDIR="$CURRENT_DIR/linux-headers-$VERSION.orig/include" | ||
518 | NEWDIR="$CURRENT_DIR/linux-headers-$VERSION/include" | ||
519 | |||
520 | # Headers to Sanitize | ||
521 | ASM_HEADERS="8253pit.h addrs.h addrspace.h alternative.h anna.h a.out.h apicdef.h apic.h arch.h as85ep1.h asi.h asm-compat.h | ||
522 | asm.h asmmacro-32.h asmmacro-64.h asmmacro.h assembler.h atomic.h auxvec.h barrier.h bitops.h bootparam.h | ||
523 | break.h btfixup.h byteorder.h cachectl.h cacheflush.h cache.h checksum.h clinkage.h clps7111.h compat.h | ||
524 | console.h constants.h const.h contregs.h coprocessor.h core.h cpudata.h cpufeature.h cpu-features.h cpu.h | ||
525 | cputable.h cputime.h cs89712.h current.h ddb5477.h dec21285.h delay.h desc.h div64.h domain.h ec3104.h eeh.h | ||
526 | elf.h entry.h ep7211.h ep7212.h errno-base.h errno.h ev96100.h ev96100int.h fcntl.h fixmap.h fls64.h | ||
527 | fpga85e2c.h fpregdef.h fpu.h gentrap.h gic.h gio_defs.h glue.h gpio.h hal.h hardirq.h hardware.h hd64465.h | ||
528 | head.h hubio.h hw_irq.h hwrpb.h hypervisor.h ia64regs.h imx-regs.h intrinsics.h io_apic.h ioctl.h ioctls.h | ||
529 | io_generic.h iomap.h iomd.h irc-regs.h irq.h irqs.h irq-sh73180.h irq-sh7780.h isadep.h iseries_io.h | ||
530 | it8172.h it8172_int.h it8712.h ixp2000-regs.h jazz.h kbio.h kldir.h kmap_types.h kregs.h lasat.h ldt.h | ||
531 | leds.h linkage.h local.h locks.h lowcore.h m32102.h m32104ut_pld.h m32700ut_lan.h m32700ut_lcd.h | ||
532 | m32700ut_pld.h m32r.h m32r_mp_fpga.h ma1.h machdep.h mach-types.h machvec.h macrology.h ma.h map.h | ||
533 | mappi2_pld.h mappi3_pld.h math_emu.h me2.h mem-layout.h memory.h mips_mt.h mipsmtregs.h mipsregs.h mman.h | ||
534 | mmsegment.h mmu_context.h mmu.h module.h motorola_pgalloc.h motorola_pgtable.h movs.h mpspec_def.h mpspec.h | ||
535 | msr.h mtrr.h nodedata.h node.h numa.h nvram.h openprom.h openpromio.h oplib.h opsput_lan.h opsput_lcd.h | ||
536 | opsput_pld.h pal.h param.h pda.h pdc.h pgalloc.h pgtable-2level.h pgtable-32.h pgtable-64.h pgtable-bits.h | ||
537 | pgtable.h pgtable-hwdef.h pgtsrmmu.h pgtsun4c.h pgtsun4.h pil.h platform.h poll.h posix_types.h prctl.h | ||
538 | processor.h procinfo.h psr.h pstate.h psw.h ptrace.h regdef.h reg.h registers.h reg_map.h reg_rdwr.h | ||
539 | regs267x.h regs306x.h regs-clock.h regs-watchdog.h rs485.h rse.h rte_cb.h rte_ma1_cb.h rte_me2_cb.h | ||
540 | rte_nb85e_cb.h rwlock.h scatterlist.h scratchpad.h segment.h semaphore.h sembuf.h serial.h serial-regs.h | ||
541 | setup.h sgidefs.h shmbuf.h shmparam.h shub_mmr.h sigcontext.h siginfo.h signal.h sigp.h sim85e2c.h | ||
542 | sim85e2.h sim85e2s.h sim.h sizes.h smp.h smtc.h sn_cpuid.h socket.h sockios.h spinlock.h spitfire.h | ||
543 | spr-regs.h starfire.h stat.h string.h sun3-head.h sun3mmu.h sun3_pgalloc.h sun3_pgtable.h sv_addr_ag.h | ||
544 | svinto.h synch.h sysasic.h syscall.h sysen.h sysirq.h system.h teg.h termbits.h termios.h timer-regs.h | ||
545 | timex.h tlbflush.h tlb.h traps.h tsc.h types.h ubc.h unaligned.h unistd.h unwind.h upa.h user.h | ||
546 | ustack.h v850e2_cache.h v850e2.h v850e_cache.h v850e.h v850e_intc.h vac-ops.h vaddrs.h visasm.h | ||
547 | vm86.h vsyscall32.h vsyscall.h war.h wbflush.h" | ||
548 | ASM_ARCH_HEADERS="asm-alpha/pci.h asm-alpha/console.h asm-alpha/hwrpb.h asm-mips/vr41xx/pci.h asm-mips/sysmips.h" | ||
549 | ASM_SYS_HEADERS="io.h" | ||
550 | LINUX_HEADERS="adb.h adfs_fs.h adfs_fs_i.h adfs_fs_sb.h affs_fs.h agpgart.h a.out.h apm_bios.h atalk.h atmapi.h | ||
551 | atmarp.h atmclip.h atmdev.h atm_eni.h atm.h atm_idt77105.h atmioc.h atmlec.h atmmpc.h atm_nicstar.h | ||
552 | atmppp.h atmsap.h atmsvc.h atm_tcp.h atm_zatm.h auto_fs4.h auto_fs.h auxvec.h backing-dev.h bfs_fs.h | ||
553 | binfmts.h bitops.h blkpg.h blockgroup_lock.h cache.h calc64.h capability.h capi.h cdrom.h coda_fs_i.h | ||
554 | coff.h compat.h cpu.h cramfs_fs.h cramfs_fs_sb.h crypto.h dcache.h dccp.h delay.h device.h devpts_fs.h | ||
555 | dirent.h dm-ioctl.h dn.h dnotify.h dqblk_xfs.h efs_dir.h efs_fs.h efs_fs_i.h efs_fs_sb.h elf.h errno.h | ||
556 | errqueue.h ethtool.h ext2_fs.h ext2_fs_sb.h ext3_fs.h ext3_fs_i.h ext3_fs_sb.h fb.h fcntl.h fd.h fdreg.h | ||
557 | filter.h fs.h fs_struct.h fuse.h futex.h gameport.h gen_stats.h gfp.h hayesesp.h hdreg.h hiddev.h | ||
558 | highmem.h hpfs_fs.h hrtimer.h icmp.h icmpv6.h idr.h if_arcnet.h if_arp.h if_bonding.h if_bridge.h | ||
559 | if_cablemodem.h if_ec.h if_eql.h if_ether.h if_fc.h if_fddi.h if_frad.h if.h if_hippi.h if_infiniband.h | ||
560 | if_ltalk.h if_packet.h if_plip.h if_ppp.h if_pppox.h if_shaper.h if_slip.h if_strip.h if_tr.h if_tun.h | ||
561 | if_tunnel.h if_vlan.h if_wanpipe_common.h if_wanpipe.h in6.h inet_diag.h in.h init.h inotify.h input.h | ||
562 | in_route.h interrupt.h ioctl.h ioport.h ip6_tunnel.h ipc.h ip.h ip_mp_alg.h ipsec.h ipv6.h ipv6_route.h | ||
563 | ipx.h irda.h irq_cpustat.h irqflags.h irq.h irqreturn.h isdn.h iso_fs.h jffs2_fs_i.h jffs2_fs_sb.h | ||
564 | jffs2.h jiffies.h joystick.h kdev_t.h kd.h kernelcapi.h kernel.h kernel_stat.h keyboard.h klist.h | ||
565 | kmod.h ktime.h lapb.h limits.h linkage.h list.h llc.h loop.h lp.h major.h mempool.h mii.h minix_fs.h | ||
566 | mm.h mod_devicetable.h module.h moduleparam.h mount.h msdos_fs.h msg.h ncp_fs_i.h ncp_fs_sb.h ncp.h | ||
567 | ncp_mount.h ncp_no.h netdevice.h netfilter_arp.h netfilter_bridge.h netfilter_decnet.h netfilter.h | ||
568 | netfilter_ipv4.h netfilter_ipv6.h net.h netlink.h netrom.h nfs2.h nfs4.h nfsacl.h nfs_fs.h nfs_fs_i.h | ||
569 | nfs_fs_sb.h nfs.h nfs_xdr.h notifier.h numa.h openprom_fs.h page-flags.h param.h parport.h patchkey.h | ||
570 | pcieport_if.h pci.h pci_ids.h pci_regs.h percpu_counter.h personality.h pfkeyv2.h pfn.h phy.h pid.h | ||
571 | pipe_fs_i.h pkt_cls.h pkt_sched.h pm.h pmu.h poll.h posix_acl.h posix_types.h ppdev.h ppp-comp.h | ||
572 | ppp_defs.h prctl.h preempt.h proc_fs.h profile.h ptrace.h qnx4_fs.h qnxtypes.h quota.h random.h raw.h | ||
573 | rbtree.h reboot.h reiserfs_fs.h reiserfs_fs_i.h reiserfs_fs_sb.h romfs_fs.h rose.h route.h rtc.h | ||
574 | rtnetlink.h sched.h sctp.h seccomp.h securebits.h security.h sem.h seqlock.h serial.h serial_reg.h | ||
575 | shmem_fs.h shm.h skbuff.h slab.h smb_fs.h smb_fs_i.h smb_fs_sb.h smb.h smb_mount.h smbno.h smp_lock.h | ||
576 | snmp.h sockios.h sonet.h soundcard.h statfs.h stddef.h stringify.h swap.h syscalls.h sysctl.h sysdev.h | ||
577 | sysv_fs.h tcp.h termios.h threads.h timex.h tiocl.h tty.h udf_fs.h udf_fs_i.h udf_fs_sb.h udp.h ufs_fs.h | ||
578 | ufs_fs_i.h ufs_fs_sb.h ultrasound.h unistd.h usbdevice_fs.h usb.h user.h utsname.h vfs.h videodev2.h | ||
579 | videodev.h vmalloc.h vt.h wireless.h workqueue.h x25.h xdr.h xfrm.h" | ||
580 | |||
581 | NOSANTIZE_ASM_HEADERS="types.h" | ||
582 | NOSANTIZE_LINUX_HEADERS="nfs3.h types.h byteorder/big_endian.h byteorder/little_endian.h" | ||
583 | |||
584 | BLANK_HEADERS="asm-sparc64/psr.h linux/autoconf.h linux/agp_backend.h linux/compiler.h linux/config.h linux/list.h | ||
585 | linux/mmzone.h linux/pagemap.h linux/percpu.h linux/syscalls.h linux/uio.h linux/utime.h" | ||
586 | ROOT_HEADERS="linux/elf.h linux/signal.h linux/string.h" | ||
587 | SYS_HEADERS="linux/acct.h linux/resource.h linux/socket.h linux/stat.h linux/un.h linux/wait.h" | ||
588 | |||
589 | REMOVE_HEADERS="asm-generic/page.h asm-mips/fpu.h net/raw.h net/rawv6.h asm-cris/arch-v10/atomic.h | ||
590 | asm-cris/arch-v32/atomic.h" | ||
591 | |||
592 | if [ "$FILE" = "yes" ]; then | ||
593 | echo "Files List to $CURRENT_DIR/asm-list..." | ||
594 | for file in $ASM_HEADERS; do | ||
595 | echo "$file" >> $CURRENT_DIR/asm-list | ||
596 | done | ||
597 | echo "Files List to $CURRENT_DIR/linux-list..." | ||
598 | for file in $LINUX_HEADERS; do | ||
599 | echo "$file" >> $CURRENT_DIR/linux-list | ||
600 | done | ||
601 | exit | ||
602 | fi | ||
603 | |||
604 | if [ "$DUMP" = "yes" ]; then | ||
605 | echo "Dumping Files List to $CURRENT_DIR/asm-headers..." | ||
606 | echo "ASM Files Generic" > $CURRENT_DIR/asm-headers | ||
607 | echo "-----" >> $CURRENT_DIR/asm-headers | ||
608 | for file in $ASM_HEADERS; do | ||
609 | echo "$file" >> $CURRENT_DIR/asm-headers | ||
610 | done | ||
611 | echo "-----" >> $CURRENT_DIR/asm-headers | ||
612 | echo "ASM Architecture Specific Files" >> $CURRENT_DIR/asm-headers | ||
613 | echo "-----" >> $CURRENT_DIR/asm-headers | ||
614 | for file in $ASM_ARCH_HEADERS; do | ||
615 | echo "$file" >> $CURRENT_DIR/asm-headers | ||
616 | done | ||
617 | echo "-----" >> $CURRENT_DIR/asm-headers | ||
618 | echo "ASM Architecture Non Santize Files" >> $CURRENT_DIR/asm-headers | ||
619 | echo "-----" >> $CURRENT_DIR/asm-headers | ||
620 | for file in $NOSANTIZE_ASM_HEADERS; do | ||
621 | echo "$file" >> $CURRENT_DIR/asm-headers | ||
622 | done | ||
623 | echo "Dumping Files List to $CURRENT_DIR/linux-headers..." | ||
624 | echo "Linux Files" > $CURRENT_DIR/linux-headers | ||
625 | echo "-----" >> $CURRENT_DIR/linux-headers | ||
626 | for file in $LINUX_HEADERS; do | ||
627 | echo "$file" >> $CURRENT_DIR/linux-headers | ||
628 | done | ||
629 | echo "-----" >> $CURRENT_DIR/linux-headers | ||
630 | echo "Linux Non Santize Files" >> $CURRENT_DIR/linux-headers | ||
631 | echo "-----" >> $CURRENT_DIR/linux-headers | ||
632 | for file in $NOSANTIZE_LINUX_HEADERS; do | ||
633 | echo "$file" >> $CURRENT_DIR/linux-headers | ||
634 | done | ||
635 | if [ "$DUMPONLY" = "yes" ]; then | ||
636 | echo "Exiting - Dump only requested..." | ||
637 | exit 0 | ||
638 | fi | ||
639 | fi | ||
640 | |||
641 | if ! [ -f linux-$VERSION.tar.bz2 ]; then | ||
642 | echo "Downloading kernel linux-$VERSION from kernel.org..." | ||
643 | wget --quiet http://www.kernel.org/pub/linux/kernel/v$P1.$P2/linux-$VERSION.tar.bz2 | ||
644 | if [ "$?" != "0" ]; then | ||
645 | echo "Error during Download." | ||
646 | exit 255 | ||
647 | fi | ||
648 | fi | ||
649 | |||
650 | echo "Decompressing Kernel Headers only..." | ||
651 | rm -rf linux-$VERSION linux-headers-$VERSION linux-headers-$VERSION.orig | ||
652 | tar jxf linux-$VERSION.tar.bz2 linux-$VERSION/include/* | ||
653 | |||
654 | echo "Renaming directory to linux-headers-$VERSION..." | ||
655 | mv linux-$VERSION linux-headers-$VERSION.orig | ||
656 | |||
657 | echo "Creating directory Structure..." | ||
658 | install -d linux-headers-$VERSION | ||
659 | cd $ORIGDIR | ||
660 | DIRS=`find * -type d` | ||
661 | cd $CURRENT_DIR | ||
662 | for dir in $DIRS; do | ||
663 | install -d $NEWDIR/$dir | ||
664 | done | ||
665 | |||
666 | DONT_CHANGE="no" | ||
667 | TYPE="asm" | ||
668 | HEADERS="$ASM_HEADERS" | ||
669 | if [ "$HEADERS" != "" ]; then | ||
670 | make_headers | ||
671 | fi | ||
672 | |||
673 | TYPE="asm" | ||
674 | HEADERS="$ASM_ARCH_HEADERS" | ||
675 | if [ "$HEADERS" != "" ]; then | ||
676 | make_headers | ||
677 | fi | ||
678 | |||
679 | TYPE="linux" | ||
680 | HEADERS="$LINUX_HEADERS" | ||
681 | if [ "$HEADERS" != "" ]; then | ||
682 | make_headers | ||
683 | fi | ||
684 | |||
685 | SETTYPE="byteorder dvb isdn lockd mtd netfilter netfilter_arp netfilter_bridge netfilter_ipv4 netfilter_ipv6 | ||
686 | nfsd raid sunrpc tc_act tc_ematch" | ||
687 | for type in $SETTYPE; do | ||
688 | TYPE="linux" | ||
689 | cd $ORIGDIR/linux | ||
690 | if [ -e $ORIGDIR/linux/$type ]; then | ||
691 | HEADERS=`find $type | grep .h | sed -e '/big_endian.h/d' | sed -e '/little_endian.h/d' | sort -u ` | ||
692 | if [ "$HEADERS" != "" ]; then | ||
693 | make_headers | ||
694 | fi | ||
695 | fi | ||
696 | done | ||
697 | |||
698 | SETTYPE="mtd scsi sound" | ||
699 | for type in $SETTYPE; do | ||
700 | TYPE="$type" | ||
701 | cd $ORIGDIR | ||
702 | if [ -e $ORIGDIR/$type ]; then | ||
703 | HEADERS=`find $type | grep .h | sort -u ` | ||
704 | if [ "$HEADERS" != "" ]; then | ||
705 | make_headers | ||
706 | fi | ||
707 | fi | ||
708 | done | ||
709 | |||
710 | DONT_CHANGE="yes" | ||
711 | TYPE="linux" | ||
712 | HEADERS="$NOSANTIZE_LINUX_HEADERS" | ||
713 | if [ "$HEADERS" != "" ]; then | ||
714 | make_headers | ||
715 | fi | ||
716 | |||
717 | TYPE="asm" | ||
718 | HEADERS="$NOSANTIZE_ASM_HEADERS" | ||
719 | if [ "$HEADERS" != "" ]; then | ||
720 | make_headers | ||
721 | fi | ||
722 | |||
723 | for header in $BLANK_HEADERS; do | ||
724 | CONTENT="/* Empty */" | ||
725 | TEST=`echo $header | grep -c linux/` | ||
726 | if [ "$TEST" = "1" ]; then | ||
727 | create_linux_header | ||
728 | else | ||
729 | DIRS=`echo $header | cut -f1 -d/` | ||
730 | header=`echo $header | sed -e "s@$DIRS/@@g"` | ||
731 | create_asm_header | ||
732 | fi | ||
733 | done | ||
734 | |||
735 | for header in $ROOT_HEADERS; do | ||
736 | new_header=`echo $header | cut -f2 -d/` | ||
737 | HEADING=`echo $header | tr '[:lower:]' '[:upper:]' | cut -f2 -d/ | cut -f1 -d.` | ||
738 | CONTENT="#include <$new_header>" | ||
739 | create_linux_header | ||
740 | done | ||
741 | |||
742 | for header in $SYS_HEADERS; do | ||
743 | new_header=`echo $header | cut -f2 -d/` | ||
744 | HEADING=`echo $header | tr '[:lower:]' '[:upper:]' | cut -f2 -d/ | cut -f1 -d.` | ||
745 | CONTENT="#include <sys/$new_header>" | ||
746 | create_linux_header | ||
747 | done | ||
748 | |||
749 | cd $NEWDIR | ||
750 | PLATFORM=`ls -1 asm-* -d | sed -e 's/asm-generic//g'` | ||
751 | for platform in $PLATFORM; do | ||
752 | ELF_H=$NEWDIR/$platform/elf.h | ||
753 | echo "Fixing include/$platform/elf.h..." | ||
754 | if [ -e $ELF_H ]; then | ||
755 | if [ "$platform" = "asm-alpha" ]; then | ||
756 | sed -e '/#include <asm.auxvec.h>/d' \ | ||
757 | $ELF_H > $ELF_H.new | ||
758 | fi | ||
759 | if [ "$platform" = "asm-arm" -o "$platform" = "asm-cris" ]; then | ||
760 | sed -e '/#include <asm.user.h>/d' \ | ||
761 | -e '/#include <asm.procinfo.h>/d' \ | ||
762 | $ELF_H > $ELF_H.new | ||
763 | fi | ||
764 | if [ "$platform" = "asm-h8300" -o "$platform" = "asm-m68k" -o \ | ||
765 | "$platform" = "asm-sparc" -o "$platform" = "asm-sparc64" ]; then | ||
766 | sed -e '/#include <asm.ptrace.h>/d' \ | ||
767 | $ELF_H > $ELF_H.new | ||
768 | fi | ||
769 | if [ "$platform" = "asm-i386" -o "$platform" = "asm-x86_64" ]; then | ||
770 | sed -e '/#include <asm.ptrace.h>/d' \ | ||
771 | -e '/#include <asm.processor.h>/d' \ | ||
772 | -e '/#include <asm.system.h>/d' \ | ||
773 | -e '/#include <asm.auxvec.h>/d' \ | ||
774 | -e '/#include <linux.utsname.h>/d' \ | ||
775 | $ELF_H > $ELF_H.new | ||
776 | fi | ||
777 | if [ "$platform" = "asm-ia64" ]; then | ||
778 | sed -e '/#include <asm.fpu.h>/d' \ | ||
779 | -e '/#include <asm.auxvec.h>/d' \ | ||
780 | $ELF_H > $ELF_H.new | ||
781 | fi | ||
782 | if [ "$platform" = "asm-m32r" ]; then | ||
783 | sed -e 's@#include <asm/user.h>@#include <asm/user.h>\n#include <asm/page.h>@' \ | ||
784 | $ELF_H > $ELF_H.new | ||
785 | fi | ||
786 | if [ "$platform" = "asm-m68knommu" ]; then | ||
787 | sed -e '/#include <asm.ptrace.h>/d' \ | ||
788 | -e '/#include <asm.user.h>/d' \ | ||
789 | $ELF_H > $ELF_H.new | ||
790 | fi | ||
791 | if [ "$platform" = "asm-parisc" ]; then | ||
792 | sed -e 's@#include <asm/ptrace.h>@#include <asm/types.h>@' \ | ||
793 | $ELF_H > $ELF_H.new | ||
794 | fi | ||
795 | if [ "$platform" = "asm-powerpc" ]; then | ||
796 | sed -e '/#include <asm.auxvec.h>/d' \ | ||
797 | $ELF_H > $ELF_H.new | ||
798 | fi | ||
799 | if [ "$platform" = "asm-s390" ]; then | ||
800 | sed -e 's/#define __ASMS390_ELF_H/#define __ASMS390_ELF_H\n\nNeXtLiNe/' \ | ||
801 | $ELF_H > $ELF_H.new | ||
802 | cp $ELF_H.new $ELF_H | ||
803 | sed -e 's@NeXtLiNe@#include <asm/ptrace.h>\n#include <asm/system.h>\n@' \ | ||
804 | $ELF_H > $ELF_H.new | ||
805 | fi | ||
806 | if [ "$platform" = "asm-sparc64" ]; then | ||
807 | sed -e 's@#define __ASM_SPARC64_ELF_H@#define __ASM_SPARC64_ELF_H\n\n#include <asm/spitfire.h>\n@' \ | ||
808 | $ELF_H > $ELF_H.new | ||
809 | fi | ||
810 | if [ "$platform" = "asm-sh" ]; then | ||
811 | sed -e 's@#define __ASM_SH_ELF_H@#define __ASM_SH_ELF_H\n\n#include <asm/ptrace.h>\n@' \ | ||
812 | $ELF_H > $ELF_H.new | ||
813 | fi | ||
814 | if [ "$platform" = "asm-v850" ]; then | ||
815 | sed -e '/#include <asm.user.h>/d' \ | ||
816 | -e '/#include <asm.byteorder.h/d' \ | ||
817 | $ELF_H > $ELF_H.new | ||
818 | fi | ||
819 | if [ -e $ELF_H.new ]; then | ||
820 | cp $ELF_H.new $ELF_H | ||
821 | fi | ||
822 | clean_header $ELF_H | ||
823 | fi | ||
824 | done | ||
825 | |||
826 | cp $ORIGDIR/asm-ia64/page.h $NEWDIR/asm-ia64/page.h | ||
827 | PAGE_H=$NEWDIR/asm-ia64/page.h | ||
828 | echo "Processing include/asm-ia64/page.h..." | ||
829 | unifdef -UCONFIG_IA64_PAGE_SIZE_4KB -UCONFIG_IA64_PAGE_SIZE_8KB \ | ||
830 | -UCONFIG_IA64_PAGE_SIZE_16KB -UCONFIG_IA64_PAGE_SIZE_64KB $PAGE_H > $PAGE_H.new | ||
831 | cp $PAGE_H.new $PAGE_H | ||
832 | sed -e 's/# error Unsupported page size./#define PAGE_SIZE\tsysconf (_SC_PAGE_SIZE)\nNeXtLiNe/' $PAGE_H > $PAGE_H.new | ||
833 | cp $PAGE_H.new $PAGE_H | ||
834 | sed -e 's/NeXtLiNe/\n#define PAGE_SHIFT\t(getpageshift())/' $PAGE_H > $PAGE_H.new | ||
835 | mv $PAGE_H.new $PAGE_H | ||
836 | clean_header $PAGE_H | ||
837 | |||
838 | cd $NEWDIR | ||
839 | PLATFORM=`ls -1 asm-* -d | sed -e 's/asm-generic//g' -e 's/asm-ia64//g'` | ||
840 | for platform in $PLATFORM; do | ||
841 | PAGE_H=$NEWDIR/$platform/page.h | ||
842 | echo "Creating include/$platform/page.h..." | ||
843 | if [ "$platform" = "asm-alpha" ]; then | ||
844 | FILEHEADER="_ALPHA_PAGE_H" | ||
845 | fi | ||
846 | if [ "$platform" = "asm-arm" -o "$platform" = "asm-arm26" ]; then | ||
847 | FILEHEADER="_ASMARM_PAGE_H" | ||
848 | fi | ||
849 | if [ "$platform" = "asm-cris" ]; then | ||
850 | FILEHEADER="_CRIS_PAGE_H" | ||
851 | fi | ||
852 | if [ "$platform" = "asm-h8300" ]; then | ||
853 | FILEHEADER="_H8300_PAGE_H" | ||
854 | fi | ||
855 | if [ "$platform" = "asm-i386" ]; then | ||
856 | FILEHEADER="_I386_PAGE_H" | ||
857 | fi | ||
858 | if [ "$platform" = "asm-m68k" ]; then | ||
859 | FILEHEADER="_M68K_PAGE_H" | ||
860 | fi | ||
861 | if [ "$platform" = "asm-m68knommu" ]; then | ||
862 | FILEHEADER="_M68KNOMMU_PAGE_H" | ||
863 | fi | ||
864 | if [ "$platform" = "asm-mips" -o "$platform" = "asm-frv" ]; then | ||
865 | FILEHEADER="_ASM_PAGE_H" | ||
866 | fi | ||
867 | if [ "$platform" = "asm-parisc" ]; then | ||
868 | FILEHEADER="_PARISC_PAGE_H" | ||
869 | fi | ||
870 | if [ "$platform" = "asm-ppc" ]; then | ||
871 | FILEHEADER="_PPC_PAGE_H" | ||
872 | fi | ||
873 | if [ "$platform" = "asm-powerpc" ]; then | ||
874 | FILEHEADER="_ASM_POWERPC_PAGE_H" | ||
875 | fi | ||
876 | if [ "$platform" = "asm-s390" ]; then | ||
877 | FILEHEADER="_S390_PAGE_H" | ||
878 | fi | ||
879 | if [ "$platform" = "asm-sh" ]; then | ||
880 | FILEHEADER="__ASM_SH_PAGE_H" | ||
881 | fi | ||
882 | if [ "$platform" = "asm-sh64" ]; then | ||
883 | FILEHEADER="__ASM_SH64_PAGE_H" | ||
884 | fi | ||
885 | if [ "$platform" = "asm-sparc" ]; then | ||
886 | FILEHEADER="_SPARC_PAGE_H" | ||
887 | fi | ||
888 | if [ "$platform" = "asm-sparc64" ]; then | ||
889 | FILEHEADER="_SPARC64_PAGE_H" | ||
890 | fi | ||
891 | if [ "$platform" = "asm-um" ]; then | ||
892 | FILEHEADER="__UM_PAGE_H" | ||
893 | fi | ||
894 | if [ "$platform" = "asm-v850" ]; then | ||
895 | FILEHEADER="__V850_PAGE_H__" | ||
896 | fi | ||
897 | if [ "$platform" = "asm-x86_64" ]; then | ||
898 | FILEHEADER="_X86_64_PAGE_H" | ||
899 | fi | ||
900 | if [ "$platform" = "asm-xtensa" ]; then | ||
901 | FILEHEADER="_XTENSA_PAGE_H" | ||
902 | fi | ||
903 | echo "#ifndef $FILEHEADER" > $PAGE_H | ||
904 | echo "#define $FILEHEADER" >> $PAGE_H | ||
905 | echo "" >> $PAGE_H | ||
906 | if [ "$platform" = "asm-alpha" ]; then | ||
907 | echo "#include <asm/pal.h>" >> $PAGE_H | ||
908 | fi | ||
909 | echo "#include <unistd.h>" >> $PAGE_H | ||
910 | if [ "$platform" = "asm-arm26" ]; then | ||
911 | echo "#define EXEC_PAGESIZE 32768" >> $PAGE_H | ||
912 | fi | ||
913 | echo "" >> $PAGE_H | ||
914 | echo "#define PAGE_SIZE sysconf (_SC_PAGE_SIZE)" >> $PAGE_H | ||
915 | echo "#define PAGE_SHIFT (getpageshift())" >> $PAGE_H | ||
916 | echo "#define PAGE_MASK (~(PAGE_SIZE-1))" >> $PAGE_H | ||
917 | echo "" >> $PAGE_H | ||
918 | if [ "$platform" = "asm-arm26" ]; then | ||
919 | echo "#define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)">> $PAGE_H | ||
920 | fi | ||
921 | if [ "$platform" = "asm-mips" ]; then | ||
922 | echo "#ifdef CONFIG_LIMITED_DMA" >> $PAGE_H | ||
923 | echo "#define WANT_PAGE_VIRTUAL" >> $PAGE_H | ||
924 | echo "#endif" >> $PAGE_H | ||
925 | echo "" >> $PAGE_H | ||
926 | fi | ||
927 | if [ "$platform" = "asm-v850" ]; then | ||
928 | echo "#ifndef PAGE_OFFSET" >> $PAGE_H | ||
929 | echo "#define PAGE_OFFSET 0x0000000" >> $PAGE_H | ||
930 | echo "#endif" >> $PAGE_H | ||
931 | echo "" >> $PAGE_H | ||
932 | fi | ||
933 | echo "#endif /* ($FILEHEADER) */" >> $PAGE_H | ||
934 | clean_header $PAGE_H | ||
935 | done | ||
936 | |||
937 | PLATFORM="asm-m68k asm-sparc asm-sparc64" | ||
938 | for platform in $PLATFORM; do | ||
939 | KBIO_H=$NEWDIR/$platform/kbio.h | ||
940 | echo "Creating include/$platform/kbio.h..." | ||
941 | echo "#ifndef __LINUX_KBIO_H" > $KBIO_H | ||
942 | echo "#define __LINUX_KBIO_H" >> $KBIO_H | ||
943 | echo "" >> $KBIO_H | ||
944 | echo "#define KIOCTYPE _IOR('k', 9, int)" >> $KBIO_H | ||
945 | echo "" >> $KBIO_H | ||
946 | echo "#define KIOCLAYOUT _IOR('k', 20, int)" >> $KBIO_H | ||
947 | echo "" >> $KBIO_H | ||
948 | echo "enum {" >> $KBIO_H | ||
949 | echo " TR_NONE," >> $KBIO_H | ||
950 | echo " TR_ASCII," >> $KBIO_H | ||
951 | echo " TR_EVENT," >> $KBIO_H | ||
952 | echo " TR_UNTRANS_EVENT" >> $KBIO_H | ||
953 | echo "};" >> $KBIO_H | ||
954 | echo "" >> $KBIO_H | ||
955 | echo "#define KIOCGTRANS _IOR('k', 5, int)" >> $KBIO_H | ||
956 | echo "" >> $KBIO_H | ||
957 | echo "#define KIOCTRANS _IOW('k', 0, int)" >> $KBIO_H | ||
958 | echo "" >> $KBIO_H | ||
959 | echo "#define KIOCCMD _IOW('k', 8, int)" >> $KBIO_H | ||
960 | echo "" >> $KBIO_H | ||
961 | echo "#define KIOCSDIRECT _IOW('k', 10, int)" >> $KBIO_H | ||
962 | echo "" >> $KBIO_H | ||
963 | echo "#define KIOCSLED _IOW('k', 14, unsigned char)" >> $KBIO_H | ||
964 | echo "" >> $KBIO_H | ||
965 | echo "#define KIOCGLED _IOR('k', 15, unsigned char)" >> $KBIO_H | ||
966 | echo "struct kbd_rate {" >> $KBIO_H | ||
967 | echo " unsigned char delay;" >> $KBIO_H | ||
968 | echo " unsigned char rate; " >> $KBIO_H | ||
969 | echo "};" >> $KBIO_H | ||
970 | echo "" >> $KBIO_H | ||
971 | echo "#define KIOCSRATE _IOW('k', 40, struct kbd_rate)" >> $KBIO_H | ||
972 | echo "" >> $KBIO_H | ||
973 | echo "#define KIOCGRATE _IOW('k', 41, struct kbd_rate)" >> $KBIO_H | ||
974 | echo "" >> $KBIO_H | ||
975 | echo "#define KBD_UP 0x80" >> $KBIO_H | ||
976 | echo "" >> $KBIO_H | ||
977 | echo "#define KBD_KEYMASK 0x7f" >> $KBIO_H | ||
978 | echo "" >> $KBIO_H | ||
979 | echo "#define KBD_IDLE 0x75" >> $KBIO_H | ||
980 | echo "" >> $KBIO_H | ||
981 | echo "#endif /* __LINUX_KBIO_H */" >> $KBIO_H | ||
982 | clean_header $KBIO_H | ||
983 | done | ||
984 | |||
985 | CACHE_H=$NEWDIR/asm-i386/cache.h | ||
986 | echo "Fixing include/asm-i386/cache.h..." | ||
987 | sed -e 's@CONFIG_X86_L1_CACHE_SHIFT@7@' $CACHE_H > $CACHE_H.new | ||
988 | mv $CACHE_H.new $CACHE_H | ||
989 | clean_header $CACHE_H | ||
990 | |||
991 | CACHE_H=$NEWDIR/asm-x86_64/cache.h | ||
992 | echo "Fixing include/asm-x86_64/cache.h..." | ||
993 | sed -e 's@CONFIG_X86_L1_CACHE_SHIFT@7@' $CACHE_H > $CACHE_H.new | ||
994 | mv $CACHE_H.new $CACHE_H | ||
995 | clean_header $CACHE_H | ||
996 | |||
997 | PARAM_H=$NEWDIR/asm-i386/param.h | ||
998 | echo "Fixing include/asm-i386/param.h..." | ||
999 | sed -e 's@#define HZ 100@#define HZ\t\t100\n#endif\n\nNeXtLiNe\n@' $PARAM_H > $PARAM_H.new | ||
1000 | cp $PARAM_H.new $PARAM_H | ||
1001 | sed -e 's@NeXtLiNe@#ifndef USER_HZ\n#define USER_HZ\t\t100@' $PARAM_H > $PARAM_H.new | ||
1002 | mv $PARAM_H.new $PARAM_H | ||
1003 | clean_header $PARAM_H | ||
1004 | |||
1005 | PROCESSOR_H=$NEWDIR/asm-i386/processor.h | ||
1006 | echo "Fixing include/asm-i386/processor.h..." | ||
1007 | sed -e 's@#include <asm/segment.h>@#include <asm/segment.h>\n#include <asm/page.h>@' $PROCESSOR_H > $PROCESSOR_H.new | ||
1008 | mv $PROCESSOR_H.new $PROCESSOR_H | ||
1009 | clean_header $PROCESSOR_H | ||
1010 | |||
1011 | PROCESSOR_H=$NEWDIR/asm-x86_64/processor.h | ||
1012 | echo "Fixing include/asm-x86_64/processor.h..." | ||
1013 | sed -e 's@#include <asm/segment.h>@#include <asm/segment.h>\n#include <asm/page.h>@' $PROCESSOR_H > $PROCESSOR_H.new | ||
1014 | mv $PROCESSOR_H.new $PROCESSOR_H | ||
1015 | clean_header $PROCESSOR_H | ||
1016 | |||
1017 | TERMIOS_H=$NEWDIR/asm-sparc/termios.h | ||
1018 | echo "Fixing include/asm-sparc/termios.h..." | ||
1019 | sed -e 's@struct sunos_ttysize@#endif\n\nstruct sunos_ttysize@' $TERMIOS_H > $TERMIOS_H.new | ||
1020 | mv $TERMIOS_H.new $TERMIOS_H | ||
1021 | clean_header $TERMIOS_H | ||
1022 | |||
1023 | TERMIOS_H=$NEWDIR/asm-sparc64/termios.h | ||
1024 | echo "Fixing include/asm-sparc64/termios.h..." | ||
1025 | sed -e 's@struct sunos_ttysize@#endif\n\nstruct sunos_ttysize@' $TERMIOS_H > $TERMIOS_H.new | ||
1026 | mv $TERMIOS_H.new $TERMIOS_H | ||
1027 | clean_header $TERMIOS_H | ||
1028 | |||
1029 | cd $NEWDIR | ||
1030 | for header in `find * -name types.h` ; do | ||
1031 | echo "Fixing include/$header..." | ||
1032 | sed -e 's@&& !defined(__STRICT_ANSI__)@@' $header > $header.new | ||
1033 | mv $header.new $header | ||
1034 | clean_header $header | ||
1035 | done | ||
1036 | |||
1037 | for header in $ASM_SYS_HEADERS; do | ||
1038 | cd $NEWDIR | ||
1039 | DIRS=`ls -1 asm-* -d | sed -e 's/asm-generic//g'` | ||
1040 | CONTENT="#include <sys/$header>" | ||
1041 | create_asm_header | ||
1042 | done | ||
1043 | |||
1044 | VERSION_H=$NEWDIR/linux/version.h | ||
1045 | echo "Creating include/linux/version.h..." | ||
1046 | let LINUXCODE="($P1<<16)+($P2<<8)+$P3" | ||
1047 | echo "#ifndef _LINUX_VERSION_H" > $VERSION_H | ||
1048 | echo "#define _LINUX_VERSION_H" >> $VERSION_H | ||
1049 | echo "" >> $VERSION_H | ||
1050 | echo "#define UTS_RELEASE \"$P1.$P2.$P3\"" >> $VERSION_H | ||
1051 | echo "#define LINUX_VERSION_CODE $LINUXCODE" >> $VERSION_H | ||
1052 | echo "#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))" >> $VERSION_H | ||
1053 | echo "" >> $VERSION_H | ||
1054 | echo "#endif /* _LINUX_VERSION_H */" >> $VERSION_H | ||
1055 | clean_header $VERSION_H | ||
1056 | |||
1057 | BIG_ENDIAN_H=include/linux/byteorder/big_endian.h | ||
1058 | LITTLE_ENDIAN_H=include/linux/byteorder/little_endian.h | ||
1059 | HEADERS="$BIG_ENDIAN_H $LITTLE_ENDIAN_H" | ||
1060 | for hdr in $HEADERS; do | ||
1061 | echo "Fixing $hdr..." | ||
1062 | sed -e 's/(__force __be..)//' \ | ||
1063 | -e 's/(__force __u..)//' \ | ||
1064 | -e 's/(__force __le..)//' \ | ||
1065 | -e '/#include <linux.byteorder.generic.h>/d' \ | ||
1066 | -e '/static/,/#define/d' \ | ||
1067 | -e 's/\b[us]\(8\|16\|32\|64\)\b/__&/g' \ | ||
1068 | -e 's/\b__\(be\|le\)\(16\|32\|64\)\b/__u\2/g' \ | ||
1069 | $CURRENT_DIR/linux-headers-$VERSION/$hdr > $CURRENT_DIR/linux-headers-$VERSION/$hdr.new | ||
1070 | mv $CURRENT_DIR/linux-headers-$VERSION/$hdr.new $CURRENT_DIR/linux-headers-$VERSION/$hdr | ||
1071 | clean_header $CURRENT_DIR/linux-headers-$VERSION/$hdr | ||
1072 | done | ||
1073 | |||
1074 | ATOMIC_H=$NEWDIR/asm-mips/atomic.h | ||
1075 | echo "Creating include/asm-mips/atomic.h..." | ||
1076 | echo "#ifndef _ASM_ATOMIC_H" > $ATOMIC_H | ||
1077 | echo "#define _ASM_ATOMIC_H" >> $ATOMIC_H | ||
1078 | echo "" >> $ATOMIC_H | ||
1079 | echo "typedef struct { volatile int counter; } atomic_t;" >> $ATOMIC_H | ||
1080 | echo "" >> $ATOMIC_H | ||
1081 | echo "#ifdef __mips64" >> $ATOMIC_H | ||
1082 | echo "typedef struct { volatile long counter; } atomic64_t;" >> $ATOMIC_H | ||
1083 | echo "#endif" >> $ATOMIC_H | ||
1084 | echo "" >> $ATOMIC_H | ||
1085 | echo "#endif /* _ASM_ATOMIC_H */" >> $ATOMIC_H | ||
1086 | clean_header $ATOMIC_H | ||
1087 | |||
1088 | ATOMIC_H=$NEWDIR/asm-i386/atomic.h | ||
1089 | echo "Fixing include/asm-i386/atomic.h" | ||
1090 | if [ -e $NEWDIR/asm-i386/alternative.h ]; then | ||
1091 | sed -e 's@#include <asm.processor.h>@#include <asm/alternative.h>@g' $ATOMIC_H > $ATOMIC_H.new | ||
1092 | else | ||
1093 | sed -e '/#include <asm.processor.h>/d' $ATOMIC_H > $ATOMIC_H.new | ||
1094 | fi | ||
1095 | mv $ATOMIC_H.new $ATOMIC_H | ||
1096 | clean_header $ATOMIC_H | ||
1097 | |||
1098 | HEADER_FILE="agpgart.h" | ||
1099 | HEADER_NAME="_AGP_H 1" | ||
1100 | HEADER_UPDATE="#include <asm/types.h>" | ||
1101 | change_header | ||
1102 | |||
1103 | HEADER_FILE="atmarp.h" | ||
1104 | HEADER_NAME="_LINUX_ATMARP_H" | ||
1105 | HEADER_UPDATE="#include <linux/types.h>" | ||
1106 | change_header | ||
1107 | |||
1108 | ATM_H=$NEWDIR/linux/atm.h | ||
1109 | echo "Fixing include/linux/atm.h..." | ||
1110 | sed -e 's@#include <linux/atmapi.h>@#include <linux/types.h>\n#include <linux/atmapi.h>@' $ATM_H > $ATM_H.new | ||
1111 | cp $ATM_H.new $ATM_H | ||
1112 | sed -e 's@#include <linux/atmioc.h>@#include <linux/atmioc.h>\n#include <stdint.h>@' $ATM_H > $ATM_H.new | ||
1113 | mv $ATM_H.new $ATM_H | ||
1114 | clean_header $ATM_H | ||
1115 | |||
1116 | ATM_TCP_H=$NEWDIR/linux/atm_tcp.h | ||
1117 | echo "Fixing include/linux/atm_tcp.h..." | ||
1118 | sed -e 's@#include <linux/atmapi.h>@#include <linux/types.h>\n#include <linux/atmapi.h>@' $ATM_TCP_H > $ATM_TCP_H.new | ||
1119 | cp $ATM_TCP_H.new $ATM_TCP_H | ||
1120 | clean_header $ATM_TCP_H | ||
1121 | |||
1122 | echo "Creating include/linux/ax25.h..." | ||
1123 | echo "#include <netax25/ax25.h>" > $NEWDIR/linux/ax25.h | ||
1124 | |||
1125 | ELF_H=$NEWDIR/linux/elf.h | ||
1126 | echo "Fixing include/linux/elf.h..." | ||
1127 | sed -e 's@#include <elf.h>@#include <elf.h>\n#include <asm/elf.h>@' $ELF_H > $ELF_H.new | ||
1128 | mv $ELF_H.new $ELF_H | ||
1129 | clean_header $ELF_H | ||
1130 | |||
1131 | HEADER_FILE="ethtool.h" | ||
1132 | HEADER_NAME="_LINUX_ETHTOOL_H" | ||
1133 | HEADER_UPDATE="#include <asm/types.h>" | ||
1134 | change_header | ||
1135 | |||
1136 | FS_H=$NEWDIR/linux/fs.h | ||
1137 | echo "Fixing include/linux/fs.h..." | ||
1138 | sed -e 's@#include <linux/limits.h>@#include <linux/types.h>\n#include <linux/limits.h>@' $FS_H > $FS_H.new | ||
1139 | mv $FS_H.new $FS_H | ||
1140 | clean_header $FS_H | ||
1141 | |||
1142 | HEADER_FILE="if_fc.h" | ||
1143 | HEADER_NAME="_LINUX_IF_FC_H" | ||
1144 | HEADER_UPDATE="#include <asm/types.h>" | ||
1145 | change_header | ||
1146 | |||
1147 | IF_HIPPI_H=$NEWDIR/linux/if_hippi.h | ||
1148 | echo "Fixing include/linux/if_hippi.h..." | ||
1149 | sed -e 's@#include <asm/byteorder.h>@#include <endian.h>\n#include <byteswap.h>\nNeXtLiNe@' $IF_HIPPI_H > $IF_HIPPI_H.new | ||
1150 | cp $IF_HIPPI_H.new $IF_HIPPI_H | ||
1151 | sed -e 's@NeXtLiNe@#include <asm/types.h>@' $IF_HIPPI_H > $IF_HIPPI_H.new | ||
1152 | mv $IF_HIPPI_H.new $IF_HIPPI_H | ||
1153 | clean_header $IF_HIPPI_H | ||
1154 | |||
1155 | IF_PPPOX_H=$NEWDIR/linux/if_pppox.h | ||
1156 | echo "Fixing include/linux/if_pppox.h..." | ||
1157 | sed -e 's@#define __LINUX_IF_PPPOX_H@#define __LINUX_IF_PPPOX_H\n\n#include <linux/if.h>\nNeXtLiNe@' $IF_PPPOX_H > $IF_PPPOX_H.new | ||
1158 | cp $IF_PPPOX_H.new $IF_PPPOX_H | ||
1159 | sed -e 's@NeXtLiNe@#include <linux/if_ether.h>@' $IF_PPPOX_H > $IF_PPPOX_H.new | ||
1160 | cp $IF_PPPOX_H.new $IF_PPPOX_H | ||
1161 | sed -e 's@#include <asm/byteorder.h>@#include <endian.h>\n#include <byteswap.h>\nNeXtLiNe@' $IF_PPPOX_H > $IF_PPPOX_H.new | ||
1162 | cp $IF_PPPOX_H.new $IF_PPPOX_H | ||
1163 | sed -e 's@NeXtLiNe@#include <asm/byteorder.h>@' $IF_PPPOX_H > $IF_PPPOX_H.new | ||
1164 | mv $IF_PPPOX_H.new $IF_PPPOX_H | ||
1165 | clean_header $IF_PPPOX_H | ||
1166 | |||
1167 | HEADER_FILE="if_strip.h" | ||
1168 | HEADER_NAME="__LINUX_STRIP_H" | ||
1169 | HEADER_UPDATE="#include <asm/types.h>" | ||
1170 | change_header | ||
1171 | |||
1172 | IF_TUNNEL_H=$NEWDIR/linux/if_tunnel.h | ||
1173 | echo "Fixing include/linux/if_tunnel.h..." | ||
1174 | sed -e 's/#define _IF_TUNNEL_H_/#define _IF_TUNNEL_H_\n\nNeXtLiNe/' $IF_TUNNEL_H > $IF_TUNNEL_H.new | ||
1175 | cp $IF_TUNNEL_H.new $IF_TUNNEL_H | ||
1176 | sed -e 's@NeXtLiNe@#include <linux/if.h>\nNeXtLiNe@' $IF_TUNNEL_H > $IF_TUNNEL_H.new | ||
1177 | cp $IF_TUNNEL_H.new $IF_TUNNEL_H | ||
1178 | sed -e 's@NeXtLiNe@#include <linux/ip.h>\nNeXtLiNe@' $IF_TUNNEL_H > $IF_TUNNEL_H.new | ||
1179 | cp $IF_TUNNEL_H.new $IF_TUNNEL_H | ||
1180 | sed -e 's@NeXtLiNe@#include <asm/types.h>\nNeXtLiNe@' $IF_TUNNEL_H > $IF_TUNNEL_H.new | ||
1181 | cp $IF_TUNNEL_H.new $IF_TUNNEL_H | ||
1182 | sed -e 's@NeXtLiNe@#include <asm/byteorder.h>@' $IF_TUNNEL_H > $IF_TUNNEL_H.new | ||
1183 | mv $IF_TUNNEL_H.new $IF_TUNNEL_H | ||
1184 | clean_header $IF_TUNNEL_H | ||
1185 | |||
1186 | HEADER_FILE="if_tr.h" | ||
1187 | HEADER_NAME="_LINUX_IF_TR_H" | ||
1188 | HEADER_UPDATE="#include <asm/types.h>" | ||
1189 | change_header | ||
1190 | |||
1191 | if [ "$LINUXCODE" -lt "132625" ]; then | ||
1192 | INPUT_H=$NEWDIR/linux/input.h | ||
1193 | echo "Fixing include/linux/input.h..." | ||
1194 | sed -e '/struct input_device_id/,/INPUT_DEVICE_ID_MATCH_SWBIT/d' $INPUT_H > $INPUT_H.new | ||
1195 | mv $INPUT_H.new $INPUT_H | ||
1196 | clean_header $INPUT_H | ||
1197 | fi | ||
1198 | |||
1199 | JOYSTICK_H=$NEWDIR/linux/joystick.h | ||
1200 | echo "Fixing include/linux/joystick.h..." | ||
1201 | sed -e 's@int32_t@__s32@' $JOYSTICK_H > $JOYSTICK_H.new | ||
1202 | cp $JOYSTICK_H.new $JOYSTICK_H | ||
1203 | sed -e 's@int64_t@__s64@' $JOYSTICK_H > $JOYSTICK_H.new | ||
1204 | mv $JOYSTICK_H.new $JOYSTICK_H | ||
1205 | clean_header $JOYSTICK_H | ||
1206 | |||
1207 | PCI_H=$NEWDIR/linux/pci.h | ||
1208 | echo "Fixing include/linux/pci.h..." | ||
1209 | sed -e '/#include <linux.mod_devicetable.h>/d' $PCI_H > $PCI_H.new | ||
1210 | mv $PCI_H.new $PCI_H | ||
1211 | clean_header $PCI_H | ||
1212 | |||
1213 | echo "Creating include/linux/netrom.h..." | ||
1214 | echo "#include <netrom/netrom.h>" > $NEWDIR/linux/netrom.h | ||
1215 | |||
1216 | NFS3_H=$NEWDIR/linux/nfs3.h | ||
1217 | echo "Fixing include/linux/nfs3.h..." | ||
1218 | sed -e 's@#endif /. _LINUX_NFS3_H ./@@' $NFS3_H > $NFS3_H.new | ||
1219 | cp $NFS3_H.new $NFS3_H | ||
1220 | echo "#endif /* NFS_NEED_KERNEL_TYPES */" >> $NFS3_H | ||
1221 | echo "#endif /* _LINUX_NFS3_H */" >> $NFS3_H | ||
1222 | clean_header $NFS3_H | ||
1223 | |||
1224 | RTNETLINK_H=$NEWDIR/linux/rtnetlink.h | ||
1225 | echo "Fixing include/linux/rtnetlink.h..." | ||
1226 | sed -e 's@#define RTPROT_XORP 14 .* XORP *..@#define RTPROT_XORP\t14\t/* XORP */\nNeXtLiNe@' $RTNETLINK_H > $RTNETLINK_H.new | ||
1227 | cp $RTNETLINK_H.new $RTNETLINK_H | ||
1228 | sed -e 's@NeXtLiNe@#define RTPROT_NTK\t15\t/* Netsukuku */@' $RTNETLINK_H > $RTNETLINK_H.new | ||
1229 | mv $RTNETLINK_H.new $RTNETLINK_H | ||
1230 | clean_header $RTNETLINK_H | ||
1231 | |||
1232 | SWAB_H=$NEWDIR/linux/byteorder/swab.h | ||
1233 | HEADER_FILE="byteorder/swab.h" | ||
1234 | HEADER_NAME="_LINUX_BYTEORDER_SWAB_H" | ||
1235 | HEADER_UPDATE="#include <byteswap.h>" | ||
1236 | change_header | ||
1237 | sed -e '/#ifndef __arch__swab16/,/#endif .* _LINUX_BYTEORDER_SWAB_H *./d' $SWAB_H > $SWAB_H.new | ||
1238 | cp $SWAB_H.new $SWAB_H | ||
1239 | sed -e 's/provide defaults when no architecture-specific optimization is detected/definitions that are not in glibc but required/g' $SWAB_H > $SWAB_H.new | ||
1240 | mv $SWAB_H.new $SWAB_H | ||
1241 | echo "" >> $SWAB_H | ||
1242 | echo "#define ___constant_swab16(x) __bswap_constant_16(x)" >> $SWAB_H | ||
1243 | echo "#define ___constant_swab32(x) __bswap_constant_32(x)" >> $SWAB_H | ||
1244 | echo "#define ___constant_swab64(x) __bswap_constant_64(x)" >> $SWAB_H | ||
1245 | echo "" >> $SWAB_H | ||
1246 | echo "#define __swab16(x) bswap_16(x)" >> $SWAB_H | ||
1247 | echo "#define __swab32(x) bswap_32(x)" >> $SWAB_H | ||
1248 | echo "#define __swab64(x) bswap_64(x)" >> $SWAB_H | ||
1249 | echo "" >> $SWAB_H | ||
1250 | echo "#define __swab16p(x) __swab16(*(x))" >> $SWAB_H | ||
1251 | echo "#define __swab32p(x) __swab32(*(x))" >> $SWAB_H | ||
1252 | echo "#define __swab64p(x) __swab64(*(x))" >> $SWAB_H | ||
1253 | echo "" >> $SWAB_H | ||
1254 | echo "#define __swab16s(x) do { *(x) = __swab16p((x)); } while (0)" >> $SWAB_H | ||
1255 | echo "#define __swab32s(x) do { *(x) = __swab32p((x)); } while (0)" >> $SWAB_H | ||
1256 | echo "#define __swab64s(x) do { *(x) = __swab64p((x)); } while (0)" >> $SWAB_H | ||
1257 | echo "" >> $SWAB_H | ||
1258 | echo "#endif /* _LINUX_BYTEORDER_SWAB_H */" >> $SWAB_H | ||
1259 | clean_header $SWAB_H | ||
1260 | |||
1261 | TIME_H=$NEWDIR/linux/time.h | ||
1262 | echo "Creating include/linux/time.h..." | ||
1263 | echo "#ifndef LINUX_TIME_H" > $TIME_H | ||
1264 | echo "" >> $TIME_H | ||
1265 | echo "#define MSEC_PER_SEC 1000L" >> $TIME_H | ||
1266 | echo "#define USEC_PER_SEC 1000000L" >> $TIME_H | ||
1267 | echo "#define NSEC_PER_SEC 1000000000L" >> $TIME_H | ||
1268 | echo "#define NSEC_PER_USEC 1000L" >> $TIME_H | ||
1269 | echo "" >> $TIME_H | ||
1270 | echo "#include <sys/time.h>" >> $TIME_H | ||
1271 | echo "" >> $TIME_H | ||
1272 | echo "#endif" >> $TIME_H | ||
1273 | |||
1274 | TYPES_H=$NEWDIR/linux/types.h | ||
1275 | echo "Fixing include/linux/types.h..." | ||
1276 | sed -e 's@#include <linux/posix_types.h>@#include <sys/types.h>\n#include <linux/posix_types.h>@' $TYPES_H > $TYPES_H.new | ||
1277 | cp $TYPES_H.new $TYPES_H | ||
1278 | if [ "$LINUXVERSION" = "2.6" ]; then | ||
1279 | sed -e 's@typedef __u32 __kernel_dev_t;@typedef __u32 __kernel_dev_t;\n\n#if defined(WANT_KERNEL_TYPES) || !defined(__GLIBC__)@' $TYPES_H > $TYPES_H.new | ||
1280 | cp $TYPES_H.new $TYPES_H | ||
1281 | sed -e 's@#endif /. __KERNEL_STRICT_NAMES ./@\n#endif\n#endif\n\n@' $TYPES_H > $TYPES_H.new | ||
1282 | cp $TYPES_H.new $TYPES_H | ||
1283 | fi | ||
1284 | clean_header $TYPES_H | ||
1285 | |||
1286 | for file in $REMOVE_HEADERS; do | ||
1287 | echo "Removing unused header $file..." | ||
1288 | rm -f $NEWDIR/$file | ||
1289 | done | ||
1290 | |||
1291 | if [ "$LINUXCODE" -gt "132625" ]; then | ||
1292 | HEADER_FILE="videodev.h" | ||
1293 | HEADER_NAME="__LINUX_VIDEODEV_H" | ||
1294 | HEADER_UPDATE="#include <linux/types.h>" | ||
1295 | change_header | ||
1296 | fi | ||
1297 | |||
1298 | echo "Removing any Kbuild files..." | ||
1299 | cd $CURRENT_DIR/linux-headers-$VERSION | ||
1300 | FILES=`find * -name Kbuild` | ||
1301 | for file in $FILES; do | ||
1302 | rm -f $file | ||
1303 | done | ||
1304 | |||
1305 | echo "Cleaning up linux-headers-$VERSION directories..." | ||
1306 | PASS=1 | ||
1307 | while [ "$PASS" -lt "4" ]; do | ||
1308 | cd $CURRENT_DIR/linux-headers-$VERSION | ||
1309 | DIRS=`find * -type d` | ||
1310 | cd $CURRENT_DIR | ||
1311 | for dir in $DIRS; do | ||
1312 | if [ -e $CURRENT_DIR/linux-headers-$VERSION/$dir ]; then | ||
1313 | rmdir $CURRENT_DIR/linux-headers-$VERSION/$dir > /dev/null 2>&1 | ||
1314 | if [ "$?" = "0" ]; then | ||
1315 | echo "Removing empty directory linux-headers-$VERSION/$dir..." | ||
1316 | fi | ||
1317 | fi | ||
1318 | done | ||
1319 | PASS=$(($PASS + 1)) | ||
1320 | done | ||
1321 | |||
1322 | echo "Creating multilib headers for x86_64..." | ||
1323 | multilib_stubs x86_64 i386 __x86_64__ | ||
1324 | echo "Creating multilib headers for Sparc64..." | ||
1325 | multilib_stubs sparc64 sparc __arch64__ | ||
1326 | |||
1327 | count=`find $CURRENT_DIR/linux-headers-$VERSION -type f | wc -l` | ||
1328 | echo "Processed $count headers..." | ||
1329 | |||
1330 | creation="$CURRENT_DIR/linux-headers-$VERSION/creation" | ||
1331 | echo "Processed $count headers on `date +%m-%d-%Y` at `date +%r`" > $creation | ||
1332 | echo "based on $VERSION kernel." >> $creation | ||
1333 | |||
1334 | bugreport="$CURRENT_DIR/linux-headers-$VERSION/bug-report" | ||
1335 | echo "Report bugs at http://headers.cross-lfs.org" > $bugreport | ||
1336 | echo "" >> $bugreport | ||
1337 | echo "Include the following information:" >> $bugreport | ||
1338 | echo " Program Name" >> $bugreport | ||
1339 | echo " Program Version" >> $bugreport | ||
1340 | echo " URL to Download Program" >> $bugreport | ||
1341 | echo " Name of Missing Header" >> $bugreport | ||
1342 | echo "" >> $bugreport | ||
1343 | echo "or" >> $bugreport | ||
1344 | echo "Use the headers_list script from" >> $bugreport | ||
1345 | echo "http://ftp.jg555.com/headers/headers_list" >> $bugreport | ||
1346 | echo "" >> $bugreport | ||
1347 | echo "Thank you for you support of Linux-Headers." >> $bugreport | ||
1348 | |||
1349 | install -d $CURRENT_DIR/linux-headers-$VERSION/script | ||
1350 | cp $0 $CURRENT_DIR/linux-headers-$VERSION/script | ||
1351 | |||
1352 | cp license $CURRENT_DIR/linux-headers-$VERSION/license | ||
1353 | |||
1354 | echo "Creating linux-headers-$VERSION.tar.bz2..." | ||
1355 | cd $CURRENT_DIR | ||
1356 | tar -jcf linux-headers-$VERSION.tar.bz2 linux-headers-$VERSION |