/*
* \brief Common types used within the linker
* \author Norman Feske
* \date 2016-10-27
*/
/*
* Copyright (C) 2016-2017 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU Affero General Public License version 3.
*/
#ifndef _INCLUDE__TYPES_H_
#define _INCLUDE__TYPES_H_
#include
#include
#include
#include
#include
#include
#include
namespace Linker {
using namespace Genode;
/**
* Exceptions
*/
class Incompatible : Exception { };
class Invalid_file : Exception { };
class Not_found : Exception { };
class Fatal : Exception { };
enum Keep { DONT_KEEP = Shared_object::DONT_KEEP,
KEEP = Shared_object::KEEP };
enum Bind { BIND_LAZY = Shared_object::BIND_LAZY,
BIND_NOW = Shared_object::BIND_NOW };
enum Stage { STAGE_BINARY, STAGE_SO };
/**
* Invariants
*/
constexpr char const *binary_name() { return "binary"; }
constexpr char const *linker_name() { return "ld.lib.so"; }
}
#endif /* _INCLUDE__TYPES_H_ */