]> git.proxmox.com Git - fwupd-efi.git/commitdiff
Account for objdump missing --target option on FreeBSD
authorSergii Dmytruk <sergii.dmytruk@3mdeb.com>
Fri, 14 May 2021 17:50:12 +0000 (20:50 +0300)
committerRichard Hughes <richard@hughsie.com>
Mon, 17 May 2021 15:33:55 +0000 (16:33 +0100)
It's a non-GNU implementation of objcopy.

Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
efi/generate_binary.py
efi/meson.build

index 907af9f2a9445203e8a8fefd02145521466926ea..a8a443751a9bc128d183a96f4f3afd6c0331c9b8 100755 (executable)
@@ -38,8 +38,13 @@ def _run_objcopy(args):
     # Use 'binary' instead, and add required symbols manually
     if args.arch in ["aarch64", "arm"]:
         argv.extend(["-O", "binary"])
+    elif args.os == "freebsd":
+        # `--target` option is missing and --input-target doesn't recognize
+        # "efi-app-*"
+        argv.extend(["--output-target", "efi-app-{}".format(args.arch)])
     else:
         argv.extend(["--target", "efi-app-{}".format(args.arch)])
+
     try:
         subprocess.run(argv, check=True)
     except FileNotFoundError as e:
@@ -67,6 +72,7 @@ if __name__ == "__main__":
     )
     parser.add_argument("--genpeimg", help="Binary file to use for genpeimg")
     parser.add_argument("--arch", default="x86_64", help="EFI architecture")
+    parser.add_argument("--os", help="OS type")
     parser.add_argument("infile", help="Input file")
     parser.add_argument("outfile", help="Output file")
     _args = parser.parse_args()
index 967fa263658793d39d8e5250c3b2bf1e51eb0ea6..68ea4aacc76281818cbb72dcdaad66dfadefa98f 100644 (file)
@@ -220,6 +220,7 @@ app = custom_target(efi_name,
                       join_paths(meson.current_source_dir(), 'generate_binary.py'),
                       '@INPUT@', '@OUTPUT@',
                       '--arch', gnu_efi_arch,
+                      '--os', host_machine.system(),
                       '--objcopy', efi_objcopy,
                       '--genpeimg', genpeimg.found() ? genpeimg : ''
                     ],