#! /bin/sh
# Copyright (C) 2018-2019 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# Usage: update-freebsd.sh
# Update the freebsd.xml file.
#
# FreeBSD uses the same list of system calls on all architectures.
# The list is defined in the sys/kern/syscalls.master file in the
# FreeBSD source tree. This file is used as an input to generate
# several files that are also stored in FreeBSD's source tree. This
# script parses one of those generated files (sys/sys/syscall.h)
# rather than syscalls.master as syscall.h is easier to parse.
if [ $# -ne 1 ]; then
echo "Error: Path to syscall.h missing. Aborting."
echo "Usage: update-gnulib.sh "
exit 1
fi
cat > freebsd.xml.tmp <
EOF
awk '
/MAXSYSCALL/ {
next
}
/^#define/ {
sub(/^SYS_/,"",$2);
printf " \n"
}
/\/\* [0-9]* is obsolete [a-z_]* \*\// {
printf " \n", $5, $2
}
/\/\* [0-9]* is freebsd[0-9]* [a-z_]* \*\// {
printf " \n", $4, $5, $2, $5
}' $1 >> freebsd.xml.tmp
cat >> freebsd.xml.tmp <
EOF
../../move-if-change freebsd.xml.tmp freebsd.xml