/* plugin-api.h -- External linker plugin API. */
-/* Copyright 2009 Free Software Foundation, Inc.
+/* Copyright 2009, 2010 Free Software Foundation, Inc.
Written by Cary Coutant <ccoutant@google.com>.
This file is part of binutils.
#ifndef PLUGIN_API_H
#define PLUGIN_API_H
+#ifdef HAVE_STDINT_H
#include <stdint.h>
+#elif defined(HAVE_INTTYPES_H)
+#include <inttypes.h>
+#endif
#include <sys/types.h>
+#if !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H) && \
+ !defined(UINT64_MAX) && !defined(uint64_t)
+#error can not find uint64_t type
+#endif
#ifdef __cplusplus
extern "C"
typedef
enum ld_plugin_status
-(*ld_plugin_add_input_file) (char *pathname);
+(*ld_plugin_add_input_file) (const char *pathname);
/* The linker's interface for adding a library that should be searched. */
typedef
enum ld_plugin_status
-(*ld_plugin_add_input_library) (char *libname);
+(*ld_plugin_add_input_library) (const char *libname);
+
+/* The linker's interface for adding a library path that should be searched. */
+
+typedef
+enum ld_plugin_status
+(*ld_plugin_set_extra_library_path) (const char *path);
/* The linker's interface for issuing a warning or error message. */
LDPT_MESSAGE,
LDPT_GET_INPUT_FILE,
LDPT_RELEASE_INPUT_FILE,
- LDPT_ADD_INPUT_LIBRARY
+ LDPT_ADD_INPUT_LIBRARY,
+ LDPT_OUTPUT_NAME,
+ LDPT_SET_EXTRA_LIBRARY_PATH,
+ LDPT_GNU_LD_VERSION
};
/* The plugin transfer vector. */
ld_plugin_get_input_file tv_get_input_file;
ld_plugin_release_input_file tv_release_input_file;
ld_plugin_add_input_library tv_add_input_library;
+ ld_plugin_set_extra_library_path tv_set_extra_library_path;
} tv_u;
};