| ... | @@ -304,154 +304,156 @@ pub const Target = union(enum) { | ... | @@ -304,154 +304,156 @@ pub const Target = union(enum) { |
| 304 | builtin.Os.freebsd => { | 304 | builtin.Os.freebsd => { |
| 305 | return "/libexec/ld-elf.so.1"; | 305 | return "/libexec/ld-elf.so.1"; |
| 306 | }, | 306 | }, |
| 307 | else => {}, | 307 | builtin.Os.linux => { |
| 308 | } | 308 | switch (env) { |
| 309 | switch (env) { | 309 | builtin.Environ.android => { |
| 310 | builtin.Environ.android => { | 310 | if (self.is64bit()) { |
| 311 | if (self.is64bit()) { | 311 | return "/system/bin/linker64"; |
| 312 | return "/system/bin/linker64"; | 312 | } else { |
| 313 | } else { | 313 | return "/system/bin/linker"; |
| 314 | return "/system/bin/linker"; | 314 | } |
| | 315 | }, |
| | 316 | builtin.Environ.gnux32 => { |
| | 317 | if (arch == builtin.Arch.x86_64) { |
| | 318 | return "/libx32/ld-linux-x32.so.2"; |
| | 319 | } |
| | 320 | }, |
| | 321 | builtin.Environ.musl, |
| | 322 | builtin.Environ.musleabi, |
| | 323 | builtin.Environ.musleabihf, |
| | 324 | => { |
| | 325 | if (arch == builtin.Arch.x86_64) { |
| | 326 | return "/lib/ld-musl-x86_64.so.1"; |
| | 327 | } |
| | 328 | }, |
| | 329 | else => {}, |
| 315 | } | 330 | } |
| 316 | }, | 331 | switch (arch) { |
| 317 | builtin.Environ.gnux32 => { | 332 | builtin.Arch.i386, |
| 318 | if (arch == builtin.Arch.x86_64) { | 333 | builtin.Arch.sparc, |
| 319 | return "/libx32/ld-linux-x32.so.2"; | 334 | builtin.Arch.sparcel, |
| | 335 | => return "/lib/ld-linux.so.2", |
| | 336 | |
| | 337 | builtin.Arch.aarch64v8_3a, |
| | 338 | builtin.Arch.aarch64v8_2a, |
| | 339 | builtin.Arch.aarch64v8_1a, |
| | 340 | builtin.Arch.aarch64v8, |
| | 341 | builtin.Arch.aarch64v8r, |
| | 342 | builtin.Arch.aarch64v8m_baseline, |
| | 343 | builtin.Arch.aarch64v8m_mainline, |
| | 344 | => return "/lib/ld-linux-aarch64.so.1", |
| | 345 | |
| | 346 | builtin.Arch.aarch64_bev8_3a, |
| | 347 | builtin.Arch.aarch64_bev8_2a, |
| | 348 | builtin.Arch.aarch64_bev8_1a, |
| | 349 | builtin.Arch.aarch64_bev8, |
| | 350 | builtin.Arch.aarch64_bev8r, |
| | 351 | builtin.Arch.aarch64_bev8m_baseline, |
| | 352 | builtin.Arch.aarch64_bev8m_mainline, |
| | 353 | => return "/lib/ld-linux-aarch64_be.so.1", |
| | 354 | |
| | 355 | builtin.Arch.armv8_3a, |
| | 356 | builtin.Arch.armv8_2a, |
| | 357 | builtin.Arch.armv8_1a, |
| | 358 | builtin.Arch.armv8, |
| | 359 | builtin.Arch.armv8r, |
| | 360 | builtin.Arch.armv8m_baseline, |
| | 361 | builtin.Arch.armv8m_mainline, |
| | 362 | builtin.Arch.armv7, |
| | 363 | builtin.Arch.armv7em, |
| | 364 | builtin.Arch.armv7m, |
| | 365 | builtin.Arch.armv7s, |
| | 366 | builtin.Arch.armv7k, |
| | 367 | builtin.Arch.armv7ve, |
| | 368 | builtin.Arch.armv6, |
| | 369 | builtin.Arch.armv6m, |
| | 370 | builtin.Arch.armv6k, |
| | 371 | builtin.Arch.armv6t2, |
| | 372 | builtin.Arch.armv5, |
| | 373 | builtin.Arch.armv5te, |
| | 374 | builtin.Arch.armv4t, |
| | 375 | builtin.Arch.thumb, |
| | 376 | => return switch (self.getFloatAbi()) { |
| | 377 | FloatAbi.Hard => return "/lib/ld-linux-armhf.so.3", |
| | 378 | else => return "/lib/ld-linux.so.3", |
| | 379 | }, |
| | 380 | |
| | 381 | builtin.Arch.armebv8_3a, |
| | 382 | builtin.Arch.armebv8_2a, |
| | 383 | builtin.Arch.armebv8_1a, |
| | 384 | builtin.Arch.armebv8, |
| | 385 | builtin.Arch.armebv8r, |
| | 386 | builtin.Arch.armebv8m_baseline, |
| | 387 | builtin.Arch.armebv8m_mainline, |
| | 388 | builtin.Arch.armebv7, |
| | 389 | builtin.Arch.armebv7em, |
| | 390 | builtin.Arch.armebv7m, |
| | 391 | builtin.Arch.armebv7s, |
| | 392 | builtin.Arch.armebv7k, |
| | 393 | builtin.Arch.armebv7ve, |
| | 394 | builtin.Arch.armebv6, |
| | 395 | builtin.Arch.armebv6m, |
| | 396 | builtin.Arch.armebv6k, |
| | 397 | builtin.Arch.armebv6t2, |
| | 398 | builtin.Arch.armebv5, |
| | 399 | builtin.Arch.armebv5te, |
| | 400 | builtin.Arch.armebv4t, |
| | 401 | builtin.Arch.thumbeb, |
| | 402 | => return switch (self.getFloatAbi()) { |
| | 403 | FloatAbi.Hard => return "/lib/ld-linux-armhf.so.3", |
| | 404 | else => return "/lib/ld-linux.so.3", |
| | 405 | }, |
| | 406 | |
| | 407 | builtin.Arch.mips, |
| | 408 | builtin.Arch.mipsel, |
| | 409 | builtin.Arch.mips64, |
| | 410 | builtin.Arch.mips64el, |
| | 411 | => return null, |
| | 412 | |
| | 413 | builtin.Arch.powerpc => return "/lib/ld.so.1", |
| | 414 | builtin.Arch.powerpc64 => return "/lib64/ld64.so.2", |
| | 415 | builtin.Arch.powerpc64le => return "/lib64/ld64.so.2", |
| | 416 | builtin.Arch.s390x => return "/lib64/ld64.so.1", |
| | 417 | builtin.Arch.sparcv9 => return "/lib64/ld-linux.so.2", |
| | 418 | builtin.Arch.x86_64 => return "/lib64/ld-linux-x86-64.so.2", |
| | 419 | |
| | 420 | builtin.Arch.arc, |
| | 421 | builtin.Arch.avr, |
| | 422 | builtin.Arch.bpfel, |
| | 423 | builtin.Arch.bpfeb, |
| | 424 | builtin.Arch.hexagon, |
| | 425 | builtin.Arch.msp430, |
| | 426 | builtin.Arch.nios2, |
| | 427 | builtin.Arch.r600, |
| | 428 | builtin.Arch.amdgcn, |
| | 429 | builtin.Arch.riscv32, |
| | 430 | builtin.Arch.riscv64, |
| | 431 | builtin.Arch.tce, |
| | 432 | builtin.Arch.tcele, |
| | 433 | builtin.Arch.xcore, |
| | 434 | builtin.Arch.nvptx, |
| | 435 | builtin.Arch.nvptx64, |
| | 436 | builtin.Arch.le32, |
| | 437 | builtin.Arch.le64, |
| | 438 | builtin.Arch.amdil, |
| | 439 | builtin.Arch.amdil64, |
| | 440 | builtin.Arch.hsail, |
| | 441 | builtin.Arch.hsail64, |
| | 442 | builtin.Arch.spir, |
| | 443 | builtin.Arch.spir64, |
| | 444 | builtin.Arch.kalimbav3, |
| | 445 | builtin.Arch.kalimbav4, |
| | 446 | builtin.Arch.kalimbav5, |
| | 447 | builtin.Arch.shave, |
| | 448 | builtin.Arch.lanai, |
| | 449 | builtin.Arch.wasm32, |
| | 450 | builtin.Arch.wasm64, |
| | 451 | builtin.Arch.renderscript32, |
| | 452 | builtin.Arch.renderscript64, |
| | 453 | => return null, |
| 320 | } | 454 | } |
| 321 | }, | 455 | }, |
| 322 | builtin.Environ.musl, | 456 | else => return null, |
| 323 | builtin.Environ.musleabi, | | |
| 324 | builtin.Environ.musleabihf, | | |
| 325 | => { | | |
| 326 | if (arch == builtin.Arch.x86_64) { | | |
| 327 | return "/lib/ld-musl-x86_64.so.1"; | | |
| 328 | } | | |
| 329 | }, | | |
| 330 | else => {}, | | |
| 331 | } | | |
| 332 | switch (arch) { | | |
| 333 | builtin.Arch.i386, | | |
| 334 | builtin.Arch.sparc, | | |
| 335 | builtin.Arch.sparcel, | | |
| 336 | => return "/lib/ld-linux.so.2", | | |
| 337 | | | |
| 338 | builtin.Arch.aarch64v8_3a, | | |
| 339 | builtin.Arch.aarch64v8_2a, | | |
| 340 | builtin.Arch.aarch64v8_1a, | | |
| 341 | builtin.Arch.aarch64v8, | | |
| 342 | builtin.Arch.aarch64v8r, | | |
| 343 | builtin.Arch.aarch64v8m_baseline, | | |
| 344 | builtin.Arch.aarch64v8m_mainline, | | |
| 345 | => return "/lib/ld-linux-aarch64.so.1", | | |
| 346 | | | |
| 347 | builtin.Arch.aarch64_bev8_3a, | | |
| 348 | builtin.Arch.aarch64_bev8_2a, | | |
| 349 | builtin.Arch.aarch64_bev8_1a, | | |
| 350 | builtin.Arch.aarch64_bev8, | | |
| 351 | builtin.Arch.aarch64_bev8r, | | |
| 352 | builtin.Arch.aarch64_bev8m_baseline, | | |
| 353 | builtin.Arch.aarch64_bev8m_mainline, | | |
| 354 | => return "/lib/ld-linux-aarch64_be.so.1", | | |
| 355 | | | |
| 356 | builtin.Arch.armv8_3a, | | |
| 357 | builtin.Arch.armv8_2a, | | |
| 358 | builtin.Arch.armv8_1a, | | |
| 359 | builtin.Arch.armv8, | | |
| 360 | builtin.Arch.armv8r, | | |
| 361 | builtin.Arch.armv8m_baseline, | | |
| 362 | builtin.Arch.armv8m_mainline, | | |
| 363 | builtin.Arch.armv7, | | |
| 364 | builtin.Arch.armv7em, | | |
| 365 | builtin.Arch.armv7m, | | |
| 366 | builtin.Arch.armv7s, | | |
| 367 | builtin.Arch.armv7k, | | |
| 368 | builtin.Arch.armv7ve, | | |
| 369 | builtin.Arch.armv6, | | |
| 370 | builtin.Arch.armv6m, | | |
| 371 | builtin.Arch.armv6k, | | |
| 372 | builtin.Arch.armv6t2, | | |
| 373 | builtin.Arch.armv5, | | |
| 374 | builtin.Arch.armv5te, | | |
| 375 | builtin.Arch.armv4t, | | |
| 376 | builtin.Arch.thumb, | | |
| 377 | => return switch (self.getFloatAbi()) { | | |
| 378 | FloatAbi.Hard => return "/lib/ld-linux-armhf.so.3", | | |
| 379 | else => return "/lib/ld-linux.so.3", | | |
| 380 | }, | | |
| 381 | | | |
| 382 | builtin.Arch.armebv8_3a, | | |
| 383 | builtin.Arch.armebv8_2a, | | |
| 384 | builtin.Arch.armebv8_1a, | | |
| 385 | builtin.Arch.armebv8, | | |
| 386 | builtin.Arch.armebv8r, | | |
| 387 | builtin.Arch.armebv8m_baseline, | | |
| 388 | builtin.Arch.armebv8m_mainline, | | |
| 389 | builtin.Arch.armebv7, | | |
| 390 | builtin.Arch.armebv7em, | | |
| 391 | builtin.Arch.armebv7m, | | |
| 392 | builtin.Arch.armebv7s, | | |
| 393 | builtin.Arch.armebv7k, | | |
| 394 | builtin.Arch.armebv7ve, | | |
| 395 | builtin.Arch.armebv6, | | |
| 396 | builtin.Arch.armebv6m, | | |
| 397 | builtin.Arch.armebv6k, | | |
| 398 | builtin.Arch.armebv6t2, | | |
| 399 | builtin.Arch.armebv5, | | |
| 400 | builtin.Arch.armebv5te, | | |
| 401 | builtin.Arch.armebv4t, | | |
| 402 | builtin.Arch.thumbeb, | | |
| 403 | => return switch (self.getFloatAbi()) { | | |
| 404 | FloatAbi.Hard => return "/lib/ld-linux-armhf.so.3", | | |
| 405 | else => return "/lib/ld-linux.so.3", | | |
| 406 | }, | | |
| 407 | | | |
| 408 | builtin.Arch.mips, | | |
| 409 | builtin.Arch.mipsel, | | |
| 410 | builtin.Arch.mips64, | | |
| 411 | builtin.Arch.mips64el, | | |
| 412 | => return null, | | |
| 413 | | | |
| 414 | builtin.Arch.powerpc => return "/lib/ld.so.1", | | |
| 415 | builtin.Arch.powerpc64 => return "/lib64/ld64.so.2", | | |
| 416 | builtin.Arch.powerpc64le => return "/lib64/ld64.so.2", | | |
| 417 | builtin.Arch.s390x => return "/lib64/ld64.so.1", | | |
| 418 | builtin.Arch.sparcv9 => return "/lib64/ld-linux.so.2", | | |
| 419 | builtin.Arch.x86_64 => return "/lib64/ld-linux-x86-64.so.2", | | |
| 420 | | | |
| 421 | builtin.Arch.arc, | | |
| 422 | builtin.Arch.avr, | | |
| 423 | builtin.Arch.bpfel, | | |
| 424 | builtin.Arch.bpfeb, | | |
| 425 | builtin.Arch.hexagon, | | |
| 426 | builtin.Arch.msp430, | | |
| 427 | builtin.Arch.nios2, | | |
| 428 | builtin.Arch.r600, | | |
| 429 | builtin.Arch.amdgcn, | | |
| 430 | builtin.Arch.riscv32, | | |
| 431 | builtin.Arch.riscv64, | | |
| 432 | builtin.Arch.tce, | | |
| 433 | builtin.Arch.tcele, | | |
| 434 | builtin.Arch.xcore, | | |
| 435 | builtin.Arch.nvptx, | | |
| 436 | builtin.Arch.nvptx64, | | |
| 437 | builtin.Arch.le32, | | |
| 438 | builtin.Arch.le64, | | |
| 439 | builtin.Arch.amdil, | | |
| 440 | builtin.Arch.amdil64, | | |
| 441 | builtin.Arch.hsail, | | |
| 442 | builtin.Arch.hsail64, | | |
| 443 | builtin.Arch.spir, | | |
| 444 | builtin.Arch.spir64, | | |
| 445 | builtin.Arch.kalimbav3, | | |
| 446 | builtin.Arch.kalimbav4, | | |
| 447 | builtin.Arch.kalimbav5, | | |
| 448 | builtin.Arch.shave, | | |
| 449 | builtin.Arch.lanai, | | |
| 450 | builtin.Arch.wasm32, | | |
| 451 | builtin.Arch.wasm64, | | |
| 452 | builtin.Arch.renderscript32, | | |
| 453 | builtin.Arch.renderscript64, | | |
| 454 | => return null, | | |
| 455 | } | 457 | } |
| 456 | } | 458 | } |
| 457 | | 459 | |