[ "$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-frontend.o nvidia/nv-instance.o nvidia/nv-gpu-numa.o nvidia/nv.o nvidia/nv-acpi.o nvidia/nv-chrdev.o nvidia/nv-cray.o nvidia/nv-dma.o nvidia/nv-gvi.o nvidia/nv-i2c.o nvidia/nv-mempool.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-kthread-q-selftest.o nvidia/nv-memdbg.o nvidia/nv-ibmnpu.o nvidia/nv-report-err.o nvidia/nv_uvm_interface.o nvidia/nvlink_linux.o nvidia/nv-kernel.o
  /usr/bin/ld.bfd -m elf_x86_64 -z noexecstack   -r -o nvidia-uvm.o nvidia-uvm/uvm_utils.o nvidia-uvm/uvm_common.o nvidia-uvm/uvm_linux.o nvidia-uvm/nvstatus.o nvidia-uvm/nvCpuUuid.o nvidia-uvm/uvm8.o nvidia-uvm/uvm8_tools.o nvidia-uvm/uvm8_global.o nvidia-uvm/uvm8_gpu.o nvidia-uvm/uvm8_gpu_isr.o nvidia-uvm/uvm8_procfs.o nvidia-uvm/uvm8_va_space.o nvidia-uvm/uvm8_gpu_semaphore.o nvidia-uvm/uvm8_mem.o nvidia-uvm/uvm8_rm_mem.o nvidia-uvm/uvm8_channel.o nvidia-uvm/uvm8_lock.o nvidia-uvm/uvm8_hal.o nvidia-uvm/uvm8_rb_tree.o nvidia-uvm/uvm8_range_tree.o nvidia-uvm/uvm8_range_allocator.o nvidia-uvm/uvm8_va_range.o nvidia-uvm/uvm8_va_block.o nvidia-uvm/uvm8_range_group.o nvidia-uvm/uvm8_gpu_replayable_faults.o nvidia-uvm/uvm8_gpu_non_replayable_faults.o nvidia-uvm/uvm8_gpu_access_counters.o nvidia-uvm/uvm8_perf_events.o nvidia-uvm/uvm8_perf_module.o nvidia-uvm/uvm8_mmu.o nvidia-uvm/uvm8_pte_batch.o nvidia-uvm/uvm8_tlb_batch.o nvidia-uvm/uvm8_push.o nvidia-uvm/uvm8_pushbuffer.o nvidia-uvm/uvm8_thread_context.o nvidia-uvm/uvm8_tracker.o nvidia-uvm/uvm8_kepler.o nvidia-uvm/uvm8_kepler_ce.o nvidia-uvm/uvm8_kepler_host.o nvidia-uvm/uvm8_kepler_mmu.o nvidia-uvm/uvm8_maxwell.o nvidia-uvm/uvm8_maxwell_host.o nvidia-uvm/uvm8_pascal.o nvidia-uvm/uvm8_pascal_ce.o nvidia-uvm/uvm8_pascal_host.o nvidia-uvm/uvm8_pascal_mmu.o nvidia-uvm/uvm8_pascal_fault_buffer.o nvidia-uvm/uvm8_volta_host.o nvidia-uvm/uvm8_volta_mmu.o nvidia-uvm/uvm8_volta.o nvidia-uvm/uvm8_volta_fault_buffer.o nvidia-uvm/uvm8_volta_access_counter_buffer.o nvidia-uvm/uvm8_policy.o nvidia-uvm/uvm8_perf_utils.o nvidia-uvm/uvm8_kvmalloc.o nvidia-uvm/uvm8_pmm_sysmem.o nvidia-uvm/uvm8_pmm_gpu.o nvidia-uvm/uvm8_migrate.o nvidia-uvm/uvm8_map_external.o nvidia-uvm/uvm8_user_channel.o nvidia-uvm/uvm8_hmm.o nvidia-uvm/uvm8_perf_heuristics.o nvidia-uvm/uvm8_perf_thrashing.o nvidia-uvm/uvm8_perf_prefetch.o nvidia-uvm/uvm8_test.o nvidia-uvm/uvm8_test_rng.o nvidia-uvm/uvm8_range_tree_test.o nvidia-uvm/uvm8_range_allocator_test.o nvidia-uvm/uvm8_gpu_semaphore_test.o nvidia-uvm/uvm8_mem_test.o nvidia-uvm/uvm8_rm_mem_test.o nvidia-uvm/uvm8_page_tree_test.o nvidia-uvm/uvm8_tracker_test.o nvidia-uvm/uvm8_push_test.o nvidia-uvm/uvm8_channel_test.o nvidia-uvm/uvm8_ce_test.o nvidia-uvm/uvm8_lock_test.o nvidia-uvm/uvm8_perf_utils_test.o nvidia-uvm/uvm8_kvmalloc_test.o nvidia-uvm/uvm8_pmm_test.o nvidia-uvm/uvm8_pmm_sysmem_test.o nvidia-uvm/uvm8_perf_events_test.o nvidia-uvm/uvm8_perf_module_test.o nvidia-uvm/uvm8_get_rm_ptes_test.o nvidia-uvm/uvm8_fault_buffer_flush_test.o nvidia-uvm/uvm8_mmu_test.o nvidia-uvm/uvm8_peer_identity_mappings_test.o nvidia-uvm/uvm8_va_block_test.o nvidia-uvm/uvm8_range_group_tree_test.o nvidia-uvm/uvm8_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-modeset-kernel.o
/usr/bin/ld.bfd -r -o nvidia/nv-interface.o nvidia/nv-frontend.o nvidia/nv-instance.o nvidia/nv-gpu-numa.o nvidia/nv.o nvidia/nv-acpi.o nvidia/nv-chrdev.o nvidia/nv-cray.o nvidia/nv-dma.o nvidia/nv-gvi.o nvidia/nv-i2c.o nvidia/nv-mempool.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-kthread-q-selftest.o nvidia/nv-memdbg.o nvidia/nv-ibmnpu.o nvidia/nv-report-err.o nvidia/nv_uvm_interface.o nvidia/nvlink_linux.o
/usr/bin/ld.bfd -r -o nvidia-modeset/nv-modeset-interface.o nvidia-modeset/nvidia-modeset-linux.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
  /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.ko nvidia.o nvidia.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
$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.ko' 'nvidia.ko.sig' >'../nvidia.ko'
$signed_only rm -f 'nvidia.ko'
