Merge remote-tracking branch 'origin/master' into llvm8
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user