[ "$1" = "unsigned" ] && { signed_only=:; shift; }
[ "$1" = "nocheck" ] && { check_only=:; shift; }
  /usr/bin/ld.bfd  -m elf_x86_64 -z noexecstack     -r -o nvidia.o nvidia/nv.o nvidia/nv-pci.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-procfs-utils.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-frontend.o nvidia/nv_uvm_interface.o nvidia/nvlink_linux.o nvidia/nvlink_caps.o nvidia/linux_nvswitch.o nvidia/procfs_nvswitch.o nvidia/i2c_nvswitch.o nvidia/nv-kernel.o
  /usr/bin/ld.bfd  -m elf_x86_64 -z noexecstack     -r -o nvidia-uvm.o nvidia-uvm/uvm_common.o nvidia-uvm/uvm_linux.o nvidia-uvm/nvstatus.o nvidia-uvm/nvCpuUuid.o nvidia-uvm/nv-kthread-q.o nvidia-uvm/nv-kthread-q-selftest.o nvidia-uvm/uvm.o nvidia-uvm/uvm_tools.o nvidia-uvm/uvm_global.o nvidia-uvm/uvm_gpu.o nvidia-uvm/uvm_gpu_isr.o nvidia-uvm/uvm_procfs.o nvidia-uvm/uvm_va_space.o nvidia-uvm/uvm_va_space_mm.o nvidia-uvm/uvm_gpu_semaphore.o nvidia-uvm/uvm_mem.o nvidia-uvm/uvm_rm_mem.o nvidia-uvm/uvm_channel.o nvidia-uvm/uvm_lock.o nvidia-uvm/uvm_hal.o nvidia-uvm/uvm_range_tree.o nvidia-uvm/uvm_rb_tree.o nvidia-uvm/uvm_range_allocator.o nvidia-uvm/uvm_va_range.o nvidia-uvm/uvm_va_block.o nvidia-uvm/uvm_range_group.o nvidia-uvm/uvm_gpu_replayable_faults.o nvidia-uvm/uvm_gpu_non_replayable_faults.o nvidia-uvm/uvm_gpu_access_counters.o nvidia-uvm/uvm_perf_events.o nvidia-uvm/uvm_perf_module.o nvidia-uvm/uvm_mmu.o nvidia-uvm/uvm_pte_batch.o nvidia-uvm/uvm_tlb_batch.o nvidia-uvm/uvm_push.o nvidia-uvm/uvm_pushbuffer.o nvidia-uvm/uvm_thread_context.o nvidia-uvm/uvm_tracker.o nvidia-uvm/uvm_kepler.o nvidia-uvm/uvm_kepler_ce.o nvidia-uvm/uvm_kepler_host.o nvidia-uvm/uvm_kepler_mmu.o nvidia-uvm/uvm_kepler_fault_buffer.o nvidia-uvm/uvm_kepler_access_counter_buffer.o nvidia-uvm/uvm_maxwell.o nvidia-uvm/uvm_maxwell_host.o nvidia-uvm/uvm_pascal.o nvidia-uvm/uvm_pascal_ce.o nvidia-uvm/uvm_pascal_host.o nvidia-uvm/uvm_pascal_mmu.o nvidia-uvm/uvm_pascal_fault_buffer.o nvidia-uvm/uvm_volta_host.o nvidia-uvm/uvm_volta_mmu.o nvidia-uvm/uvm_volta.o nvidia-uvm/uvm_volta_fault_buffer.o nvidia-uvm/uvm_volta_access_counter_buffer.o nvidia-uvm/uvm_turing.o nvidia-uvm/uvm_turing_access_counter_buffer.o nvidia-uvm/uvm_turing_fault_buffer.o nvidia-uvm/uvm_turing_mmu.o nvidia-uvm/uvm_turing_host.o nvidia-uvm/uvm_ampere.o nvidia-uvm/uvm_ampere_ce.o nvidia-uvm/uvm_ampere_host.o nvidia-uvm/uvm_ampere_mmu.o nvidia-uvm/uvm_policy.o nvidia-uvm/uvm_perf_utils.o nvidia-uvm/uvm_kvmalloc.o nvidia-uvm/uvm_pmm_sysmem.o nvidia-uvm/uvm_pmm_gpu.o nvidia-uvm/uvm_migrate.o nvidia-uvm/uvm_populate_pageable.o nvidia-uvm/uvm_migrate_pageable.o nvidia-uvm/uvm_map_external.o nvidia-uvm/uvm_user_channel.o nvidia-uvm/uvm_hmm.o nvidia-uvm/uvm_perf_heuristics.o nvidia-uvm/uvm_perf_thrashing.o nvidia-uvm/uvm_perf_prefetch.o nvidia-uvm/uvm_ats_ibm.o nvidia-uvm/uvm_ats_faults.o nvidia-uvm/uvm_test.o nvidia-uvm/uvm_test_rng.o nvidia-uvm/uvm_range_tree_test.o nvidia-uvm/uvm_range_allocator_test.o nvidia-uvm/uvm_gpu_semaphore_test.o nvidia-uvm/uvm_mem_test.o nvidia-uvm/uvm_rm_mem_test.o nvidia-uvm/uvm_page_tree_test.o nvidia-uvm/uvm_tracker_test.o nvidia-uvm/uvm_push_test.o nvidia-uvm/uvm_channel_test.o nvidia-uvm/uvm_ce_test.o nvidia-uvm/uvm_host_test.o nvidia-uvm/uvm_lock_test.o nvidia-uvm/uvm_perf_utils_test.o nvidia-uvm/uvm_kvmalloc_test.o nvidia-uvm/uvm_pmm_test.o nvidia-uvm/uvm_pmm_sysmem_test.o nvidia-uvm/uvm_perf_events_test.o nvidia-uvm/uvm_perf_module_test.o nvidia-uvm/uvm_get_rm_ptes_test.o nvidia-uvm/uvm_fault_buffer_flush_test.o nvidia-uvm/uvm_mmu_test.o nvidia-uvm/uvm_peer_identity_mappings_test.o nvidia-uvm/uvm_va_block_test.o nvidia-uvm/uvm_range_group_tree_test.o nvidia-uvm/uvm_thread_context_test.o nvidia-uvm/uvm_rb_tree_test.o
  /usr/bin/ld.bfd  -m elf_x86_64 -z noexecstack     -r -o nvidia-modeset.o nvidia-modeset/nvidia-modeset-linux.o nvidia-modeset/nv-kthread-q.o nvidia-modeset/nv-modeset-kernel.o
  /usr/bin/ld.bfd  -m elf_x86_64 -z noexecstack     -r -o nvidia-drm.o nvidia-drm/nvidia-drm.o nvidia-drm/nvidia-drm-drv.o nvidia-drm/nvidia-drm-utils.o nvidia-drm/nvidia-drm-crtc.o nvidia-drm/nvidia-drm-encoder.o nvidia-drm/nvidia-drm-connector.o nvidia-drm/nvidia-drm-gem.o nvidia-drm/nvidia-drm-fb.o nvidia-drm/nvidia-drm-modeset.o nvidia-drm/nvidia-drm-prime-fence.o nvidia-drm/nvidia-drm-linux.o nvidia-drm/nvidia-drm-helper.o nvidia-drm/nv-pci-table.o nvidia-drm/nvidia-drm-gem-nvkms-memory.o nvidia-drm/nvidia-drm-gem-user-memory.o nvidia-drm/nvidia-drm-gem-dma-buf.o nvidia-drm/nvidia-drm-format.o
/usr/bin/ld.bfd -r -o nvidia/nv-interface.o nvidia/nv.o nvidia/nv-pci.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-procfs-utils.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-frontend.o nvidia/nv_uvm_interface.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  -m elf_x86_64 -z noexecstack     -r -o nvidia-peermem.o nvidia-peermem/nvidia-peermem.o
  /usr/bin/ld.bfd -r  -m elf_x86_64 -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  -m elf_x86_64 -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  -m elf_x86_64 -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  -m elf_x86_64 -z noexecstack   --build-id=sha1  -T scripts/module.lds -o nvidia-peermem.ko nvidia-peermem.o nvidia-peermem.mod.o;  true
  /usr/bin/ld.bfd -r  -m elf_x86_64 -z noexecstack   --build-id=sha1  -T scripts/module.lds -o nvidia.ko nvidia.o nvidia.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'
