Merge remote-tracking branch 'origin/master' into llvm8

This commit is contained in:
Andrew Kelley
2019-03-10 13:48:06 -04:00
1828 changed files with 322970 additions and 1230 deletions

View File

@@ -752,7 +752,7 @@ ZigLLVM_ObjectFormatType target_object_format(const ZigTarget *target) {
// See lib/Support/Triple.cpp in LLVM for the source of this data.
// getArchPointerBitWidth
static int get_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
uint32_t target_arch_pointer_bit_width(ZigLLVM_ArchType arch) {
switch (arch) {
case ZigLLVM_UnknownArch:
return 0;
@@ -846,7 +846,7 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
return 32;
case CIntTypeLong:
case CIntTypeULong:
return get_arch_pointer_bit_width(target->arch);
return target_arch_pointer_bit_width(target->arch);
case CIntTypeLongLong:
case CIntTypeULongLong:
return 64;
@@ -869,7 +869,7 @@ uint32_t target_c_type_size_in_bits(const ZigTarget *target, CIntType id) {
return 32;
case CIntTypeLong:
case CIntTypeULong:
return get_arch_pointer_bit_width(target->arch);
return target_arch_pointer_bit_width(target->arch);
case CIntTypeLongLong:
case CIntTypeULongLong:
return 64;
@@ -955,6 +955,14 @@ const char *target_exe_file_ext(const ZigTarget *target) {
}
}
const char *target_lib_file_prefix(const ZigTarget *target) {
if (target->os == OsWindows || target->os == OsUefi) {
return "";
} else {
return "lib";
}
}
const char *target_lib_file_ext(const ZigTarget *target, bool is_static,
size_t version_major, size_t version_minor, size_t version_patch)
{
@@ -967,8 +975,12 @@ const char *target_lib_file_ext(const ZigTarget *target, bool is_static,
} else {
if (is_static) {
return ".a";
} else if (target_is_darwin(target)) {
return buf_ptr(buf_sprintf(".%" ZIG_PRI_usize ".%" ZIG_PRI_usize ".%" ZIG_PRI_usize ".dylib",
version_major, version_minor, version_patch));
} else {
return buf_ptr(buf_sprintf(".so.%" ZIG_PRI_usize, version_major));
return buf_ptr(buf_sprintf(".so.%" ZIG_PRI_usize ".%" ZIG_PRI_usize ".%" ZIG_PRI_usize,
version_major, version_minor, version_patch));
}
}
}
@@ -992,7 +1004,7 @@ static FloatAbi get_float_abi(const ZigTarget *target) {
}
static bool is_64_bit(ZigLLVM_ArchType arch) {
return get_arch_pointer_bit_width(arch) == 64;
return target_arch_pointer_bit_width(arch) == 64;
}
const char *target_dynamic_linker(const ZigTarget *target) {
@@ -1113,9 +1125,9 @@ const char *target_dynamic_linker(const ZigTarget *target) {
case OsWatchOS:
case OsMacOSX:
case OsUefi:
case OsWindows:
return nullptr;
case OsWindows:
case OsAnanas:
case OsCloudABI:
case OsDragonFly:
@@ -1366,3 +1378,17 @@ ZigLLVM_EnvironmentType target_default_abi(ZigLLVM_ArchType arch, Os os) {
}
zig_unreachable();
}
bool target_abi_is_gnu(ZigLLVM_EnvironmentType abi) {
switch (abi) {
case ZigLLVM_GNU:
case ZigLLVM_GNUABIN32:
case ZigLLVM_GNUABI64:
case ZigLLVM_GNUEABI:
case ZigLLVM_GNUEABIHF:
case ZigLLVM_GNUX32:
return true;
default:
return false;
}
}