libc: Update auto-gen scripts
Make the scripts use external/kernel-headers/original by default.
clean_header.py: Document -k<path>, add -d<path>
find_headers.py: Make kernel config files optional
update_all.py: Allow setting the path to kernel headers on the command-line
update_all.py: Better formatting of output on ttys
update_all.py: Automatically perform "git add/rm" on affected files.
SYSCALLS.TXT: Fix typo in __socketcall definition.
checksyscalls.py: Add support for superH architecture in the checks.
gensyscalls.py: Automatically perform "git add/rm" on affected files.
cpp.py: Fixed a bug that prevented certain type definitions to
be kept in the generated clean header (e.g.
struct ethtool_drvinfo in <linux/ethtool.h>)
All scripts will use the content of external/kernel-headers/original by default now.
The generated code removes all empty lines and trailing whitespace. This is useful
to ensure a unified output even if we change the parser again in the future.
The top-level disclaimer has been edited with update instructions to regenerate
the headers when needed.
Also, a warning is now inserted every 8th line in the final output:
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Changes under kernel/arch-arm and kernel/arch-x86 should correspond to whitespace
differences and additionnal struct definitions that were missed by the previous
parser implementation.
Change-Id: Icd1c056bacd766759f3e9b7bb5d63a246f3d656a
WARNING: If you run these script, do not submit the result to gerrit for now.
It seems there are discrepancies between the content of original headers
and those currently commited under bionic/libc/kernel/.
(This problem is the main motivation to insert the warning repeatedly).
Current list of issues:
- Missing SuperH headers (i.e. external/kernel-headers/original/asm-sh)
This commit is contained in:
@@ -231,6 +231,15 @@ def create_file_path(path):
|
||||
def walk_source_files(paths,callback,args,excludes=[]):
|
||||
"""recursively walk a list of paths and files, only keeping the source files in directories"""
|
||||
for path in paths:
|
||||
if len(path) > 0 and path[0] == '@':
|
||||
# this is the name of another file, include it and parse it
|
||||
path = path[1:]
|
||||
if os.path.exists(path):
|
||||
for line in open(path):
|
||||
if len(line) > 0 and line[-1] == '\n':
|
||||
line = line[:-1]
|
||||
walk_source_files([line],callback,args,excludes)
|
||||
continue
|
||||
if not os.path.isdir(path):
|
||||
callback(path,args)
|
||||
else:
|
||||
@@ -238,7 +247,7 @@ def walk_source_files(paths,callback,args,excludes=[]):
|
||||
#print "w-- %s (ex: %s)" % (repr((root,dirs)), repr(excludes))
|
||||
if len(excludes):
|
||||
for d in dirs[:]:
|
||||
if d in excludes:
|
||||
if os.path.join(root,d) in excludes:
|
||||
dirs.remove(d)
|
||||
for f in files:
|
||||
r, ext = os.path.splitext(f)
|
||||
@@ -395,3 +404,19 @@ class BatchFileUpdater:
|
||||
D2("P4 DELETES: %s" % files)
|
||||
o = commands.getoutput( "p4 delete " + files )
|
||||
D2( o )
|
||||
|
||||
def updateGitFiles(self):
|
||||
adds, deletes, edits = self.getChanges()
|
||||
|
||||
if adds:
|
||||
for dst in sorted(adds):
|
||||
self._writeFile(dst)
|
||||
commands.getoutput("git add " + " ".join(adds))
|
||||
|
||||
if deletes:
|
||||
commands.getoutput("git rm " + " ".join(deletes))
|
||||
|
||||
if edits:
|
||||
for dst in sorted(edits):
|
||||
self._writeFile(dst)
|
||||
commands.getoutput("git add " + " ".join(edits))
|
||||
|
||||
Reference in New Issue
Block a user