authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-11-27 20:56:43-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-11-27 20:56:43-05:00
logdd2450b1b21809c3fe62920498c318fbe519f579
tree51f46cdc8f8ea0f4e642d62b3bf8fce58034362e
parente3bf40742d5b93c10b8e68b202294badb508c3e7
signature Commit is signed but in an unrecognized format.

tier 2 support for freebsd


5 files changed, 156 insertions(+), 154 deletions(-)

README.md+1-1
......@@ -89,7 +89,7 @@ clarity.
8989
9090| | freestanding | linux | macosx | windows | freebsd | other |
9191|--------|--------------|--------|--------|---------|---------|--------|
92|x86_64 | Tier 2 | Tier 1 | Tier 1 | Tier 1 | Tier 3 | Tier 3 |
92|x86_64 | Tier 2 | Tier 1 | Tier 1 | Tier 1 | Tier 2 | Tier 3 |
9393|i386 | Tier 2 | Tier 2 | Tier 2 | Tier 2 | Tier 3 | Tier 3 |
9494|arm | Tier 2 | Tier 3 | Tier 3 | Tier 3 | Tier 3 | Tier 3 |
9595|arm64 | Tier 2 | Tier 2 | Tier 3 | Tier 3 | Tier 3 | Tier 3 |
cmake/Findlld.cmake+5-5
......@@ -8,13 +8,13 @@
88
99find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h
1010 PATHS
11 /usr/lib/llvm-6.0/include
12 /usr/local/llvm60/include
11 /usr/lib/llvm-7.0/include
12 /usr/local/llvm70/include
1313 /mingw64/include)
1414
15find_library(LLD_LIBRARY NAMES lld-6.0 lld60 lld
15find_library(LLD_LIBRARY NAMES lld-7.0 lld70 lld
1616 PATHS
17 /usr/lib/llvm-6.0/lib
17 /usr/lib/llvm-7.0/lib
1818 /usr/local/llvm70/lib)
1919if(EXISTS ${LLD_LIBRARY})
2020 set(LLD_LIBRARIES ${LLD_LIBRARY})
......@@ -23,7 +23,7 @@ else()
2323 string(TOUPPER ${_libname_} _prettylibname_)
2424 find_library(LLD_${_prettylibname_}_LIB NAMES ${_libname_}
2525 PATHS
26 /usr/lib/llvm-6.0/lib
26 /usr/lib/llvm-7.0/lib
2727 /usr/local/llvm70/lib
2828 /mingw64/lib
2929 /c/msys64/mingw64/lib
src-self-hosted/target.zig+147-145
......@@ -304,154 +304,156 @@ pub const Target = union(enum) {
304304 builtin.Os.freebsd => {
305305 return "/libexec/ld-elf.so.1";
306306 },
307 else => {},
308 }
309 switch (env) {
310 builtin.Environ.android => {
311 if (self.is64bit()) {
312 return "/system/bin/linker64";
313 } else {
314 return "/system/bin/linker";
307 builtin.Os.linux => {
308 switch (env) {
309 builtin.Environ.android => {
310 if (self.is64bit()) {
311 return "/system/bin/linker64";
312 } else {
313 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 => {},
315330 }
316 },
317 builtin.Environ.gnux32 => {
318 if (arch == builtin.Arch.x86_64) {
319 return "/libx32/ld-linux-x32.so.2";
331 switch (arch) {
332 builtin.Arch.i386,
333 builtin.Arch.sparc,
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,
320454 }
321455 },
322 builtin.Environ.musl,
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,
456 else => return null,
455457 }
456458 }
457459
src/util.cpp+1-1
......@@ -47,7 +47,7 @@ bool ptr_eq(const void *a, const void *b) {
4747// Ported from std/mem.zig.
4848bool SplitIterator_isSplitByte(SplitIterator *self, uint8_t byte) {
4949 for (size_t i = 0; i < self->split_bytes.len; i += 1) {
50 if (byte == self->split_bytes.ptr[i] || byte == 0) {
50 if (byte == self->split_bytes.ptr[i]) {
5151 return true;
5252 }
5353 }
std/os/index.zig+2-2
......@@ -1731,8 +1731,8 @@ pub const Dir = struct {
17311731 }
17321732
17331733 fn nextFreebsd(self: *Dir) !?Entry {
1734 self.handle.buf = try self.allocator.alloc(u8, page_size);
1735 return null; // TODO
1734 //self.handle.buf = try self.allocator.alloc(u8, page_size);
1735 @compileError("TODO implement dirs for FreeBSD");
17361736 }
17371737};
17381738