add support for FreeBSD

This commit is contained in:
Damjan Jovanovic
2012-08-02 10:36:16 -06:00
committed by Joel Dice
parent 57e318bbec
commit c1aa0b46b5
11 changed files with 60 additions and 10 deletions

View File

@ -197,8 +197,8 @@ public:
const unsigned machine;
ElfPlatform(PlatformInfo::Architecture arch):
Platform(PlatformInfo(PlatformInfo::Linux, arch)),
ElfPlatform(PlatformInfo::OperatingSystem os, PlatformInfo::Architecture arch):
Platform(PlatformInfo(os, arch)),
machine(getElfPlatform(arch)) {}
class FileWriter {
@ -372,10 +372,15 @@ public:
}
};
ElfPlatform<uint32_t> elfx86Platform(PlatformInfo::x86);
ElfPlatform<uint32_t> elfArmPlatform(PlatformInfo::Arm);
ElfPlatform<uint32_t, false> elfPowerPCPlatform(PlatformInfo::PowerPC);
ElfPlatform<uint64_t> elfx86_64Platform(PlatformInfo::x86_64);
ElfPlatform<uint32_t> elfLinuxX86Platform(PlatformInfo::Linux, PlatformInfo::x86);
ElfPlatform<uint32_t> elfLinuxArmPlatform(PlatformInfo::Linux, PlatformInfo::Arm);
ElfPlatform<uint32_t, false> elfLinuxPowerPCPlatform(PlatformInfo::Linux, PlatformInfo::PowerPC);
ElfPlatform<uint64_t> elfLinuxX86_64Platform(PlatformInfo::Linux, PlatformInfo::x86_64);
ElfPlatform<uint32_t> elfFreeBSDx86Platform(PlatformInfo::FreeBSD, PlatformInfo::x86);
ElfPlatform<uint32_t> elfFreeBSDArmPlatform(PlatformInfo::FreeBSD, PlatformInfo::Arm);
ElfPlatform<uint32_t, false> elfFreeBSDPowerPCPlatform(PlatformInfo::FreeBSD, PlatformInfo::PowerPC);
ElfPlatform<uint64_t> elfFreeBSDx86_64Platform(PlatformInfo::FreeBSD, PlatformInfo::x86_64);
} // namespace

View File

@ -92,6 +92,8 @@ PlatformInfo::OperatingSystem PlatformInfo::osFromString(const char* os) {
return Windows;
} else if(strcmp(os, "darwin") == 0) {
return Darwin;
} else if(strcmp(os, "freebsd") == 0) {
return FreeBSD;
} else {
return UnknownOS;
}
@ -122,4 +124,5 @@ Platform* Platform::getPlatform(PlatformInfo info) {
} // namespace tools
} // namespace avian
} // namespace avian

View File

@ -135,6 +135,7 @@ public:
Linux = AVIAN_PLATFORM_LINUX,
Windows = AVIAN_PLATFORM_WINDOWS,
Darwin = AVIAN_PLATFORM_DARWIN,
FreeBSD = AVIAN_PLATFORM_FREEBSD,
UnknownOS = AVIAN_PLATFORM_UNKNOWN
};
@ -193,4 +194,5 @@ public:
} // namespace avian
#endif
#endif