r190048 - Fix bug #17104 - Target info for GNU/kFreeBSD were missing.

Rafael EspĂ­ndola rafael.espindola at gmail.com
Thu Sep 5 08:38:32 PDT 2013


testcase?

On 5 September 2013 09:47, Sylvestre Ledru <sylvestre at debian.org> wrote:
> Author: sylvestre
> Date: Thu Sep  5 08:47:07 2013
> New Revision: 190048
>
> URL: http://llvm.org/viewvc/llvm-project?rev=190048&view=rev
> Log:
> Fix bug #17104 - Target info for GNU/kFreeBSD were missing.
> As a result, Clang doesn't define the pre-processor macros that are expected
> on this platform.
>
> Thanks to Robert Millan for the patch
>
>
> Modified:
>     cfe/trunk/lib/Basic/Targets.cpp
>
> Modified: cfe/trunk/lib/Basic/Targets.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=190048&r1=190047&r2=190048&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Basic/Targets.cpp (original)
> +++ cfe/trunk/lib/Basic/Targets.cpp Thu Sep  5 08:47:07 2013
> @@ -278,6 +278,30 @@ public:
>    }
>  };
>
> +// 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> {
> @@ -5470,6 +5494,8 @@ static TargetInfo *AllocateTarget(const
>        return new BitrigI386TargetInfo(Triple);
>      case llvm::Triple::FreeBSD:
>        return new FreeBSDTargetInfo<X86_32TargetInfo>(Triple);
> +    case llvm::Triple::KFreeBSD:
> +      return new KFreeBSDTargetInfo<X86_32TargetInfo>(Triple);
>      case llvm::Triple::Minix:
>        return new MinixTargetInfo<X86_32TargetInfo>(Triple);
>      case llvm::Triple::Solaris:
> @@ -5509,6 +5535,8 @@ static TargetInfo *AllocateTarget(const
>        return new BitrigX86_64TargetInfo(Triple);
>      case llvm::Triple::FreeBSD:
>        return new FreeBSDTargetInfo<X86_64TargetInfo>(Triple);
> +    case llvm::Triple::KFreeBSD:
> +      return new KFreeBSDTargetInfo<X86_64TargetInfo>(Triple);
>      case llvm::Triple::Solaris:
>        return new SolarisTargetInfo<X86_64TargetInfo>(Triple);
>      case llvm::Triple::MinGW32:
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list