193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao/* 293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * Copyright 2012, The Android Open Source Project 393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * 493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * Licensed under the Apache License, Version 2.0 (the "License"); 593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * you may not use this file except in compliance with the License. 693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * You may obtain a copy of the License at 793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * 893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * http://www.apache.org/licenses/LICENSE-2.0 993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * 1093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * Unless required by applicable law or agreed to in writing, software 1193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * distributed under the License is distributed on an "AS IS" BASIS, 1293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * See the License for the specific language governing permissions and 1493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao * limitations under the License. 1593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao */ 1693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 1793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#ifndef BCC_SUPPORT_TARGET_LINKER_CONFIGS_H 1893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#define BCC_SUPPORT_TARGET_LINKER_CONFIGS_H 1993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 2093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#include <string> 2193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 2293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#include "bcc/Config/Config.h" 2393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#include "bcc/Support/LinkerConfig.h" 2493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 2593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaonamespace bcc { 2693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 2793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao//===----------------------------------------------------------------------===// 2893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao// ARM 2993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao//===----------------------------------------------------------------------===// 3093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#if defined(PROVIDE_ARM_CODEGEN) 3193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaoclass ARMLinkerConfig : public LinkerConfig { 3293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaopublic: 3393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao ARMLinkerConfig(); 3493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao}; 3593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#endif // defined(PROVIDE_ARM_CODEGEN) 3693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 3793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao//===----------------------------------------------------------------------===// 3893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao// MIPS 3993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao//===----------------------------------------------------------------------===// 4093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#if defined(PROVIDE_MIPS_CODEGEN) 4193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaoclass MipsLinkerConfig : public LinkerConfig { 4293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaopublic: 4393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao MipsLinkerConfig(); 4493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao}; 4593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#endif // defined(PROVIDE_MIPS_CODEGEN) 4693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 4793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao//===----------------------------------------------------------------------===// 4893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao// X86 and X86_64 4993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao//===----------------------------------------------------------------------===// 5093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#if defined(PROVIDE_X86_CODEGEN) 5193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaoclass X86FamilyLinkerConfigBase : public LinkerConfig { 5293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaopublic: 5393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao X86FamilyLinkerConfigBase(const std::string& pTriple); 5493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao}; 5593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 5693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaoclass X86_32LinkerConfig : public X86FamilyLinkerConfigBase { 5793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaopublic: 5893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao X86_32LinkerConfig(); 5993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao}; 6093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 6193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaoclass X86_64LinkerConfig : public X86FamilyLinkerConfigBase { 6293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaopublic: 6393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao X86_64LinkerConfig(); 6493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao}; 6593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#endif // defined(PROVIDE_X86_CODEGEN) 6693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 6793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao//===----------------------------------------------------------------------===// 6893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao// Default target 6993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao//===----------------------------------------------------------------------===// 7093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liaoclass DefaultLinkerConfig : public 7193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#if defined (DEFAULT_ARM_CODEGEN) 7293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao ARMLinkerConfig 7393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#elif defined (DEFAULT_MIPS_CODEGEN) 7493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao MipsLinkerConfig 7593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#elif defined (DEFAULT_X86_CODEGEN) 7693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao X86_32LinkerConfig 7793c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#elif defined (DEFAULT_X86_64_CODEGEN) 7893c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao X86_64LinkerConfig 7993c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#else 8093c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao# error "Unsupported Default Target!" 8193c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#endif 8293c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao{ }; 8393c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 8493c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao} // end namespace bcc 8593c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao 8693c8832a6916a54d984764bf83a8a77cbae4143bShih-wei Liao#endif // BCC_SUPPORT_LINKER_CONFIG_H 87