Hex Artifact Content

Artifact c30cc4c3b386029a764a145dbe20e2b6cac73464:


0000: 23 21 20 2f 62 69 6e 2f 62 61 73 68 0a 0a 68 65  #! /bin/bash..he
0010: 61 64 65 72 73 5f 64 69 72 3d 22 24 31 22 0a 0a  aders_dir="$1"..
0020: 63 64 20 22 24 7b 68 65 61 64 65 72 73 5f 64 69  cd "${headers_di
0030: 72 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a 0a 23  r}" || exit 1..#
0040: 20 41 6e 64 72 6f 69 64 20 68 65 61 64 65 72 20   Android header 
0050: 66 69 78 2d 75 70 73 0a 23 23 20 44 6f 20 6e 6f  fix-ups.## Do no
0060: 74 20 61 62 6f 72 74 20 63 6f 6d 70 69 6c 61 74  t abort compilat
0070: 69 6f 6e 20 61 74 20 68 65 61 64 65 72 20 69 6e  ion at header in
0080: 63 6c 75 64 65 20 74 69 6d 65 0a 69 66 20 67 72  clude time.if gr
0090: 65 70 20 27 5e 23 65 72 72 6f 72 20 22 4e 6f 20  ep '^#error "No 
00a0: 66 75 6e 63 74 69 6f 6e 20 72 65 6e 61 6d 69 6e  function renamin
00b0: 67 20 70 6f 73 73 69 62 6c 65 22 27 20 73 79 73  g possible"' sys
00c0: 2f 63 64 65 66 73 2e 68 20 3e 2f 64 65 76 2f 6e  /cdefs.h >/dev/n
00d0: 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 3b  ull 2>/dev/null;
00e0: 20 74 68 65 6e 0a 09 61 77 6b 20 27 0a 2f 5e 23   then..awk './^#
00f0: 65 72 72 6f 72 20 22 4e 6f 20 66 75 6e 63 74 69  error "No functi
0100: 6f 6e 20 72 65 6e 61 6d 69 6e 67 20 70 6f 73 73  on renaming poss
0110: 69 62 6c 65 22 2f 7b 0a 09 70 72 69 6e 74 20 22  ible"/{..print "
0120: 23 64 65 66 69 6e 65 20 5f 5f 52 45 4e 41 4d 45  #define __RENAME
0130: 28 78 29 20 6e 6f 20 72 65 6e 61 6d 69 6e 67 20  (x) no renaming 
0140: 6f 6e 20 74 68 69 73 20 70 6c 61 74 66 6f 72 6d  on this platform
0150: 22 0a 09 6e 65 78 74 0a 7d 0a 7b 70 72 69 6e 74  "..next.}.{print
0160: 7d 0a 0a 2f 5e 23 77 61 72 6e 69 6e 67 20 2f 7b  }../^#warning /{
0170: 20 6e 65 78 74 20 7d 0a 09 27 20 73 79 73 2f 63   next }..' sys/c
0180: 64 65 66 73 2e 68 20 3e 20 73 79 73 2f 63 64 65  defs.h > sys/cde
0190: 66 73 2e 68 2e 6e 65 77 0a 09 63 61 74 20 73 79  fs.h.new..cat sy
01a0: 73 2f 63 64 65 66 73 2e 68 2e 6e 65 77 20 3e 20  s/cdefs.h.new > 
01b0: 73 79 73 2f 63 64 65 66 73 2e 68 0a 09 72 6d 20  sys/cdefs.h..rm 
01c0: 2d 66 20 73 79 73 2f 63 64 65 66 73 2e 68 2e 6e  -f sys/cdefs.h.n
01d0: 65 77 0a 66 69 0a 0a 23 23 20 6c 6f 66 66 5f 74  ew.fi..## loff_t
01e0: 20 64 65 70 65 6e 64 73 20 6f 6e 20 5f 5f 47 4e   depends on __GN
01f0: 55 43 5f 5f 20 66 6f 72 20 73 6f 6d 65 20 72 65  UC__ for some re
0200: 61 73 6f 6e 0a 69 66 20 61 77 6b 20 2d 76 20 72  ason.if awk -v r
0210: 65 74 76 61 6c 3d 31 20 27 2f 5f 5f 47 4e 55 43  etval=1 '/__GNUC
0220: 5f 5f 2f 7b 20 67 65 74 6c 69 6e 65 3b 20 69 66  __/{ getline; if
0230: 20 28 24 30 20 7e 20 2f 5f 5f 6b 65 72 6e 65 6c   ($0 ~ /__kernel
0240: 5f 6c 6f 66 66 5f 74 2f 29 20 7b 72 65 74 76 61  _loff_t/) {retva
0250: 6c 3d 30 7d 20 7d 20 45 4e 44 7b 65 78 69 74 20  l=0} } END{exit 
0260: 72 65 74 76 61 6c 7d 27 20 61 73 6d 2f 70 6f 73  retval}' asm/pos
0270: 69 78 5f 74 79 70 65 73 2e 68 20 3e 2f 64 65 76  ix_types.h >/dev
0280: 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c  /null 2>/dev/nul
0290: 6c 3b 20 74 68 65 6e 0a 09 61 77 6b 20 27 2f 5f  l; then..awk '/_
02a0: 5f 47 4e 55 43 5f 5f 2f 7b 20 67 65 74 6c 69 6e  _GNUC__/{ getlin
02b0: 65 3b 20 69 66 20 28 24 30 20 7e 20 2f 5f 5f 6b  e; if ($0 ~ /__k
02c0: 65 72 6e 65 6c 5f 6c 6f 66 66 5f 74 2f 29 20 7b  ernel_loff_t/) {
02d0: 20 70 72 69 6e 74 20 22 23 69 66 20 31 22 3b 20   print "#if 1"; 
02e0: 70 72 69 6e 74 3b 20 6e 65 78 74 20 7d 20 7d 20  print; next } } 
02f0: 7b 20 70 72 69 6e 74 20 7d 27 20 61 73 6d 2f 70  { print }' asm/p
0300: 6f 73 69 78 5f 74 79 70 65 73 2e 68 20 3e 20 61  osix_types.h > a
0310: 73 6d 2f 70 6f 73 69 78 5f 74 79 70 65 73 2e 68  sm/posix_types.h
0320: 2e 6e 65 77 0a 09 63 61 74 20 61 73 6d 2f 70 6f  .new..cat asm/po
0330: 73 69 78 5f 74 79 70 65 73 2e 68 2e 6e 65 77 20  six_types.h.new 
0340: 3e 20 61 73 6d 2f 70 6f 73 69 78 5f 74 79 70 65  > asm/posix_type
0350: 73 2e 68 0a 09 72 6d 20 2d 66 20 61 73 6d 2f 70  s.h..rm -f asm/p
0360: 6f 73 69 78 5f 74 79 70 65 73 2e 68 2e 6e 65 77  osix_types.h.new
0370: 0a 66 69 0a 0a 23 20 42 75 73 74 65 64 20 77 72  .fi..# Busted wr
0380: 61 70 70 65 72 20 66 69 78 2d 75 70 0a 69 66 20  apper fix-up.if 
0390: 67 72 65 70 20 27 5f 5f 53 54 44 43 5f 48 4f 53  grep '__STDC_HOS
03a0: 54 45 44 5f 5f 27 20 73 74 64 69 6e 74 2e 68 20  TED__' stdint.h 
03b0: 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65  >/dev/null 2>/de
03c0: 76 2f 6e 75 6c 6c 20 26 26 20 67 72 65 70 20 27  v/null && grep '
03d0: 5f 47 43 43 5f 57 52 41 50 5f 53 54 44 49 4e 54  _GCC_WRAP_STDINT
03e0: 5f 48 27 20 73 74 64 69 6e 74 2e 68 20 3e 2f 64  _H' stdint.h >/d
03f0: 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e  ev/null 2>/dev/n
0400: 75 6c 6c 3b 20 74 68 65 6e 0a 09 65 63 68 6f 20  ull; then..echo 
0410: 27 23 69 6e 63 6c 75 64 65 5f 6e 65 78 74 20 3c  '#include_next <
0420: 73 74 64 69 6e 74 2e 68 3e 27 20 3e 20 73 74 64  stdint.h>' > std
0430: 69 6e 74 2e 68 0a 66 69 0a 0a 69 66 20 67 72 65  int.h.fi..if gre
0440: 70 20 27 5f 5f 43 4c 41 4e 47 5f 4c 49 4d 49 54  p '__CLANG_LIMIT
0450: 53 5f 48 27 20 6c 69 6d 69 74 73 2e 68 20 3e 2f  S_H' limits.h >/
0460: 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f  dev/null 2>/dev/
0470: 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 65 63 68 6f  null; then..echo
0480: 20 27 23 69 6e 63 6c 75 64 65 5f 6e 65 78 74 20   '#include_next 
0490: 3c 6c 69 6d 69 74 73 2e 68 3e 27 20 3e 20 6c 69  <limits.h>' > li
04a0: 6d 69 74 73 2e 68 0a 66 69 0a 0a 23 20 4d 55 53  mits.h.fi..# MUS
04b0: 4c 20 6c 69 62 63 20 65 78 70 65 63 74 73 20 47  L libc expects G
04c0: 43 43 0a 69 66 20 67 72 65 70 20 27 20 5f 5f 62  CC.if grep ' __b
04d0: 75 69 6c 74 69 6e 5f 76 61 5f 6c 69 73 74 20 27  uiltin_va_list '
04e0: 20 62 69 74 73 2f 61 6c 6c 74 79 70 65 73 2e 68   bits/alltypes.h
04f0: 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64   >/dev/null 2>/d
0500: 65 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 73  ev/null; then..s
0510: 65 64 20 27 73 40 20 5f 5f 62 75 69 6c 74 69 6e  ed 's@ __builtin
0520: 5f 76 61 5f 6c 69 73 74 20 40 20 63 68 61 72 20  _va_list @ char 
0530: 2a 20 40 27 20 62 69 74 73 2f 61 6c 6c 74 79 70  * @' bits/alltyp
0540: 65 73 2e 68 20 3e 20 62 69 74 73 2f 61 6c 6c 74  es.h > bits/allt
0550: 79 70 65 73 2e 68 2e 6e 65 77 0a 09 63 61 74 20  ypes.h.new..cat 
0560: 62 69 74 73 2f 61 6c 6c 74 79 70 65 73 2e 68 2e  bits/alltypes.h.
0570: 6e 65 77 20 3e 20 62 69 74 73 2f 61 6c 6c 74 79  new > bits/allty
0580: 70 65 73 2e 68 0a 09 72 6d 20 2d 66 20 62 69 74  pes.h..rm -f bit
0590: 73 2f 61 6c 6c 74 79 70 65 73 2e 68 2e 6e 65 77  s/alltypes.h.new
05a0: 0a 66 69 0a                                      .fi.