mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-11-03 11:16:28 +00:00
clang under KfFreeBSD was not exporting the correct defines
(Closes: #721880)
This commit is contained in:
parent
866dfac491
commit
6d02a91140
4
debian/changelog
vendored
4
debian/changelog
vendored
@ -11,6 +11,10 @@ llvm-toolchain-3.3 (1:3.3-9) unstable; urgency=low
|
||||
See libstdc++-header-i386.diff. (Closes: #714890)
|
||||
* Add more fixes for the HURD port... (but still fails)
|
||||
|
||||
[ Robert Millan ]
|
||||
* clang under KfFreeBSD was not exporting the correct defines
|
||||
(Closes: #721880)
|
||||
|
||||
[ Jon Severinsson ]
|
||||
* Merge from llvm-toolchain-3.2 branch up to 3.2repack-11.
|
||||
* Drop auto-generated file debian/libllvm3.3.install.
|
||||
|
||||
51
debian/patches/kfreebsd_target_info_clang33.diff
vendored
Normal file
51
debian/patches/kfreebsd_target_info_clang33.diff
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
--- a/clang/lib/Basic/Targets.cpp
|
||||
+++ b/clang/lib/Basic/Targets.cpp
|
||||
@@ -283,6 +283,30 @@
|
||||
}
|
||||
};
|
||||
|
||||
+// GNU/kFreeBSD Target
|
||||
+template<typename Target>
|
||||
+class KFreeBSDTargetInfo : public OSTargetInfo<Target> {
|
||||
+protected:
|
||||
+ virtual void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
|
||||
+ MacroBuilder &Builder) const {
|
||||
+ // GNU/kFreeBSD defines; list based off of gcc output
|
||||
+
|
||||
+ DefineStd(Builder, "unix", Opts);
|
||||
+ Builder.defineMacro("__FreeBSD_kernel__");
|
||||
+ Builder.defineMacro("__GLIBC__");
|
||||
+ Builder.defineMacro("__ELF__");
|
||||
+ if (Opts.POSIXThreads)
|
||||
+ Builder.defineMacro("_REENTRANT");
|
||||
+ if (Opts.CPlusPlus)
|
||||
+ Builder.defineMacro("_GNU_SOURCE");
|
||||
+ }
|
||||
+public:
|
||||
+ KFreeBSDTargetInfo(const std::string &triple)
|
||||
+ : OSTargetInfo<Target>(triple) {
|
||||
+ this->UserLabelPrefix = "";
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
// Minix Target
|
||||
template<typename Target>
|
||||
class MinixTargetInfo : public OSTargetInfo<Target> {
|
||||
@@ -5434,6 +5458,8 @@
|
||||
return new BitrigI386TargetInfo(T);
|
||||
case llvm::Triple::FreeBSD:
|
||||
return new FreeBSDTargetInfo<X86_32TargetInfo>(T);
|
||||
+ case llvm::Triple::KFreeBSD:
|
||||
+ return new KFreeBSDTargetInfo<X86_32TargetInfo>(T);
|
||||
case llvm::Triple::Minix:
|
||||
return new MinixTargetInfo<X86_32TargetInfo>(T);
|
||||
case llvm::Triple::Solaris:
|
||||
@@ -5473,6 +5499,8 @@
|
||||
return new BitrigX86_64TargetInfo(T);
|
||||
case llvm::Triple::FreeBSD:
|
||||
return new FreeBSDTargetInfo<X86_64TargetInfo>(T);
|
||||
+ case llvm::Triple::KFreeBSD:
|
||||
+ return new KFreeBSDTargetInfo<X86_64TargetInfo>(T);
|
||||
case llvm::Triple::Solaris:
|
||||
return new SolarisTargetInfo<X86_64TargetInfo>(T);
|
||||
case llvm::Triple::MinGW32:
|
||||
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -34,3 +34,4 @@ hurd-pathmax.diff
|
||||
libprofile_rt_sparc.patch
|
||||
lldb-hurd.diff
|
||||
libstdc++-header-i386.diff
|
||||
kfreebsd_target_info_clang33.diff
|
||||
|
||||
Loading…
Reference in New Issue
Block a user