[ "$1" = "unsigned" ] && { signed_only=:; shift; }
[ "$1" = "nocheck" ] && { check_only=:; shift; }
  /usr/bin/ld.bfd -EL  -maarch64elf -z noexecstack   -r -o nvidia.o @nvidia.mod 
  /usr/bin/ld.bfd -EL  -maarch64elf -z noexecstack   -r -o nvidia-uvm.o @nvidia-uvm.mod 
  /usr/bin/ld.bfd -EL  -maarch64elf -z noexecstack   -r -o nvidia-modeset.o @nvidia-modeset.mod 
/usr/bin/ld.bfd -r -o nvidia/nv-interface.o nvidia/nv.o nvidia/nv-pci.o nvidia/nv-dmabuf.o nvidia/nv-nano-timer.o nvidia/nv-acpi.o nvidia/nv-cray.o nvidia/nv-dma.o nvidia/nv-i2c.o nvidia/nv-mmap.o nvidia/nv-p2p.o nvidia/nv-pat.o nvidia/nv-procfs.o nvidia/nv-usermap.o nvidia/nv-vm.o nvidia/nv-vtophys.o nvidia/os-interface.o nvidia/os-mlock.o nvidia/os-pci.o nvidia/os-registry.o nvidia/os-usermap.o nvidia/nv-modeset-interface.o nvidia/nv-pci-table.o nvidia/nv-kthread-q.o nvidia/nv-memdbg.o nvidia/nv-ibmnpu.o nvidia/nv-report-err.o nvidia/nv-rsync.o nvidia/nv-msi.o nvidia/nv-caps.o nvidia/nv-caps-imex.o nvidia/nv_uvm_interface.o nvidia/libspdm_aead.o nvidia/libspdm_ecc.o nvidia/libspdm_hkdf.o nvidia/libspdm_rand.o nvidia/libspdm_shash.o nvidia/libspdm_rsa.o nvidia/libspdm_aead_aes_gcm.o nvidia/libspdm_sha.o nvidia/libspdm_hmac_sha.o nvidia/libspdm_hkdf_sha.o nvidia/libspdm_ec.o nvidia/libspdm_x509.o nvidia/libspdm_rsa_ext.o nvidia/nvlink_linux.o nvidia/nvlink_caps.o nvidia/linux_nvswitch.o nvidia/procfs_nvswitch.o nvidia/i2c_nvswitch.o
/usr/bin/ld.bfd -r -o nvidia-modeset/nv-modeset-interface.o nvidia-modeset/nvidia-modeset-linux.o nvidia-modeset/nv-kthread-q.o
  /usr/bin/ld.bfd -EL  -maarch64elf -z noexecstack   -r -o nvidia-drm.o @nvidia-drm.mod 
  /usr/bin/ld.bfd -EL  -maarch64elf -z noexecstack   -r -o nvidia-peermem.o @nvidia-peermem.mod 
  /usr/bin/ld.bfd -r -EL  -maarch64elf -z noexecstack --build-id=sha1  -T scripts/module.lds -o nvidia.ko nvidia.o nvidia.mod.o;  true
  /usr/bin/ld.bfd -r -EL  -maarch64elf -z noexecstack --build-id=sha1  -T scripts/module.lds -o nvidia-modeset.ko nvidia-modeset.o nvidia-modeset.mod.o;  true
  /usr/bin/ld.bfd -r -EL  -maarch64elf -z noexecstack --build-id=sha1  -T scripts/module.lds -o nvidia-drm.ko nvidia-drm.o nvidia-drm.mod.o;  true
  /usr/bin/ld.bfd -r -EL  -maarch64elf -z noexecstack --build-id=sha1  -T scripts/module.lds -o nvidia-uvm.ko nvidia-uvm.o nvidia-uvm.mod.o;  true
  /usr/bin/ld.bfd -r -EL  -maarch64elf -z noexecstack --build-id=sha1  -T scripts/module.lds -o nvidia-peermem.ko nvidia-peermem.o nvidia-peermem.mod.o;  true
$check_only sha256sum -c SHA256SUMS || exit 1
$signed_only cat 'nvidia-drm.ko' 'nvidia-drm.ko.sig' >'../nvidia-drm.ko'
$signed_only rm -f 'nvidia-drm.ko'
$signed_only cat 'nvidia-modeset.ko' 'nvidia-modeset.ko.sig' >'../nvidia-modeset.ko'
$signed_only rm -f 'nvidia-modeset.ko'
$signed_only cat 'nvidia-peermem.ko' 'nvidia-peermem.ko.sig' >'../nvidia-peermem.ko'
$signed_only rm -f 'nvidia-peermem.ko'
$signed_only cat 'nvidia-uvm.ko' 'nvidia-uvm.ko.sig' >'../nvidia-uvm.ko'
$signed_only rm -f 'nvidia-uvm.ko'
$signed_only cat 'nvidia.ko' 'nvidia.ko.sig' >'../nvidia.ko'
$signed_only rm -f 'nvidia.ko'
