From 18038042ed16cfbc7515c42f01652c17f0d65dbc Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Wed, 23 Jun 2021 13:33:05 -0400
Subject: [PATCH] cmelf: Add script to import the FreeBSD ELF headers

These headers will be used to provide the ELF parsing code on all host
operating systems (including those that don't have an ELF header, e.g.
macOS).  This will also allow removing various OS-dependent #ifdefs from
the cmELF code.  Add a script that was used to automate this import.

Co-authored-by: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
---
 Utilities/Scripts/update-elf.bash | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100755 Utilities/Scripts/update-elf.bash

diff --git a/Utilities/Scripts/update-elf.bash b/Utilities/Scripts/update-elf.bash
new file mode 100755
index 00000000000..1a065bad8bd
--- /dev/null
+++ b/Utilities/Scripts/update-elf.bash
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+set -e
+set -x
+shopt -s dotglob
+
+readonly name="elf"
+readonly ownership="FreeBSD Upstream <kwrobot@kitware.com>"
+readonly subtree="Utilities/cmelf"
+readonly repo="https://github.com/freebsd/freebsd-src.git"
+readonly tag="main"
+readonly shortlog=false
+readonly paths="
+  sys/sys/elf32.h
+  sys/sys/elf64.h
+  sys/sys/elf_common.h
+"
+
+extract_source () {
+    git_archive
+    pushd "${extractdir}/${name}-reduced"
+    echo "* -whitespace" > .gitattributes
+    mv sys/sys/* .
+    sed -i -e 's/<sys\/elf_common.h>/"elf_common.h"/g' -e 's/u_int32_t/uint32_t/g' *.h
+    popd
+}
+
+. "${BASH_SOURCE%/*}/update-third-party.bash"
-- 
GitLab