summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReuben Thomas <rrt@sc3d.org>2017-02-02 21:06:37 +0000
committerGitHub <noreply@github.com>2017-02-02 21:06:37 +0000
commit8f340cadaa0b8af47ae95a0340cbaad4154fbb9c (patch)
treeb2be0356320048f2014344e48145b0b9eb912805
parent1c68fada7413d7ff2ab96393b4aa3a4de78b12db (diff)
parent735795b0ee9d1d3530337716ea340cda8a4ea89d (diff)
downloadenchant-8f340cadaa0b8af47ae95a0340cbaad4154fbb9c.tar.gz
Merge pull request #63 from rrthomas/master
Fix issue #51: remove unused binary relocation support
-rw-r--r--configure.ac6
-rw-r--r--m4/binreloc.m477
-rw-r--r--msvc/libenchant.vcproj8
-rw-r--r--src/Makefile.am2
-rw-r--r--src/enchant.c16
-rw-r--r--src/prefix.c696
-rw-r--r--src/prefix.h68
-rw-r--r--unittests/EnchantTestFixture.h4
8 files changed, 2 insertions, 875 deletions
diff --git a/configure.ac b/configure.ac
index a9a13c1..c7371c8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -301,10 +301,6 @@ dnl supporting this old version.
AC_SUBST(UNITTESTPP_CFLAGS)
AC_SUBST(UNITTESTPP_LIBS)
-dnl binreloc
-dnl AM_BINRELOC
-AM_CONDITIONAL(WITH_BINRELOC, test "x$br_cv_binreloc" = "xyes")
-
build_ispell=yes
AC_ARG_ENABLE(ispell, AS_HELP_STRING([--disable-ispell],[enable the ispell backend @<:@default=auto@:>@]), build_ispell="$enableval", build_ispell=yes)
@@ -558,7 +554,7 @@ AC_OUTPUT
dnl ===========================================================================================
relocatable_library="no"
-if test "x$native_win32" = "xyes" || test "x$br_cv_binreloc" = "xyes"; then
+if test "x$native_win32" = "xyes"; then
relocatable_library="yes"
fi
diff --git a/m4/binreloc.m4 b/m4/binreloc.m4
deleted file mode 100644
index 071e49e..0000000
--- a/m4/binreloc.m4
+++ /dev/null
@@ -1,77 +0,0 @@
-# Check for binary relocation support.
-# Written by Hongli Lai
-# http://autopackage.org/
-
-AC_DEFUN([AM_BINRELOC],
-[
- AC_ARG_ENABLE(binreloc,
- [ --enable-binreloc compile with binary relocation support
- (default=enable when available)],
- enable_binreloc=$enableval,enable_binreloc=auto)
-
- AC_ARG_ENABLE(binreloc-threads,
- [ --enable-binreloc-threads compile binary relocation with threads support
- (default=yes)],
- enable_binreloc_threads=$enableval,enable_binreloc_threads=yes)
-
- BINRELOC_CFLAGS=
- BINRELOC_LIBS=
- if test "x$enable_binreloc" = "xauto"; then
- AC_CHECK_FILE([/proc/self/maps])
- AC_CACHE_CHECK([whether everything is installed to the same prefix],
- [br_cv_valid_prefixes], [
- if test "$bindir" = '${exec_prefix}/bin' -a "$sbindir" = '${exec_prefix}/sbin' -a \
- "$datadir" = '${prefix}/share' -a "$libdir" = '${exec_prefix}/lib' -a \
- "$libexecdir" = '${exec_prefix}/libexec' -a "$sysconfdir" = '${prefix}/etc'
- then
- br_cv_valid_prefixes=yes
- else
- br_cv_valid_prefixes=no
- fi
- ])
- fi
- AC_CACHE_CHECK([whether binary relocation support should be enabled],
- [br_cv_binreloc],
- [if test "x$enable_binreloc" = "xyes"; then
- br_cv_binreloc=yes
- elif test "x$enable_binreloc" = "xauto"; then
- if test "x$br_cv_valid_prefixes" = "xyes" -a \
- "x$ac_cv_file__proc_self_maps" = "xyes"; then
- br_cv_binreloc=yes
- else
- br_cv_binreloc=no
- fi
- else
- br_cv_binreloc=no
- fi])
-
- if test "x$br_cv_binreloc" = "xyes"; then
- BINRELOC_CFLAGS="-DENABLE_BINRELOC"
- AC_DEFINE(ENABLE_BINRELOC,,[Use binary relocation?])
- if test "x$enable_binreloc_threads" = "xyes"; then
- AC_CHECK_LIB([pthread], [pthread_getspecific])
- fi
-
- AC_CACHE_CHECK([whether binary relocation should use threads],
- [br_cv_binreloc_threads],
- [if test "x$enable_binreloc_threads" = "xyes"; then
- if test "x$ac_cv_lib_pthread_pthread_getspecific" = "xyes"; then
- br_cv_binreloc_threads=yes
- else
- br_cv_binreloc_threads=no
- fi
- else
- br_cv_binreloc_threads=no
- fi])
-
- if test "x$br_cv_binreloc_threads" = "xyes"; then
- BINRELOC_LIBS="-lpthread"
- AC_DEFINE(BR_PTHREAD,1,[Include pthread support for binary relocation?])
- else
- BINRELOC_CFLAGS="$BINRELOC_CFLAGS -DBR_PTHREADS=0"
- AC_DEFINE(BR_PTHREAD,0,[Include pthread support for binary relocation?])
- fi
- fi
- AC_SUBST(BINRELOC_CFLAGS)
- AC_SUBST(BINRELOC_LIBS)
-])
diff --git a/msvc/libenchant.vcproj b/msvc/libenchant.vcproj
index 07f950e..ff1e4b2 100644
--- a/msvc/libenchant.vcproj
+++ b/msvc/libenchant.vcproj
@@ -205,10 +205,6 @@
>
</File>
<File
- RelativePath="..\src\prefix.h"
- >
- </File>
- <File
RelativePath="..\src\pwl.h"
>
</File>
@@ -233,10 +229,6 @@
>
</File>
<File
- RelativePath="..\src\prefix.c"
- >
- </File>
- <File
RelativePath="..\src\pwl.c"
>
</File>
diff --git a/src/Makefile.am b/src/Makefile.am
index 5bfaf56..17cf8c2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -14,7 +14,7 @@ libenchant_la_LDFLAGS += -version-info $(VERSION_INFO)
endif
libenchant_la_DEPENDENCIES = @ENCHANT_WIN32_RESOURCE@
-libenchant_la_SOURCES = prefix.c enchant.c pwl.c enchant.h prefix.h pwl.h
+libenchant_la_SOURCES = enchant.c pwl.c enchant.h pwl.h
libenchant_includedir = $(includedir)/enchant
libenchant_include_HEADERS = enchant.h enchant-provider.h enchant++.h
diff --git a/src/enchant.c b/src/enchant.c
index 87a0841..9f127f4 100644
--- a/src/enchant.c
+++ b/src/enchant.c
@@ -54,10 +54,6 @@
#define ENCHANT_USER_PATH_EXTENSION ".enchant"
#endif
-#ifdef ENABLE_BINRELOC
-#include "prefix.h"
-#endif
-
ENCHANT_PLUGIN_DECLARE("Enchant")
static char *
@@ -1712,18 +1708,6 @@ enchant_broker_init (void)
g_return_val_if_fail (g_module_supported (), NULL);
-#ifdef ENABLE_BINRELOC
- {
- static gboolean binreloc_initialized = FALSE;
-
- if (!binreloc_initialized)
- {
- (void)gbr_init_lib (NULL);
- binreloc_initialized = TRUE;
- }
- }
-#endif
-
broker = g_new0 (EnchantBroker, 1);
broker->dict_map = g_hash_table_new_full (g_str_hash, g_str_equal,
diff --git a/src/prefix.c b/src/prefix.c
deleted file mode 100644
index ea35542..0000000
--- a/src/prefix.c
+++ /dev/null
@@ -1,696 +0,0 @@
-/*
- * BinReloc - a library for creating relocatable executables
- * Written by: Hongli Lai <h.lai@chello.nl>
- * http://autopackage.org/
- *
- * This source code is public domain. You can relicense this code
- * under whatever license you want.
- *
- * See http://autopackage.org/docs/binreloc/ for
- * more information and how to use this.
- */
-
-#ifndef __BINRELOC_C__
-#define __BINRELOC_C__
-
-#ifdef ENABLE_BINRELOC
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
-#endif /* ENABLE_BINRELOC */
-#include <stdio.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include "prefix.h"
-
-G_BEGIN_DECLS
-
-
-/** @internal
- * Find the canonical filename of the executable. Returns the filename
- * (which must be freed) or NULL on error. If the parameter 'error' is
- * not NULL, the error code will be stored there, if an error occured.
- */
-static char *
-_br_find_exe (GbrInitError *error)
-{
-#ifndef ENABLE_BINRELOC
- if (error)
- *error = GBR_INIT_ERROR_DISABLED;
- return NULL;
-#else
- char *path, *path2, *line, *result;
- size_t buf_size;
- ssize_t size;
- struct stat stat_buf;
- FILE *f;
-
- /* Read from /proc/self/exe (symlink) */
- if (sizeof (path) > SSIZE_MAX)
- buf_size = SSIZE_MAX - 1;
- else
- buf_size = PATH_MAX - 1;
- path = (char *) g_try_malloc (buf_size);
- if (path == NULL) {
- /* Cannot allocate memory. */
- if (error)
- *error = GBR_INIT_ERROR_NOMEM;
- return NULL;
- }
- path2 = (char *) g_try_malloc (buf_size);
- if (path2 == NULL) {
- /* Cannot allocate memory. */
- if (error)
- *error = GBR_INIT_ERROR_NOMEM;
- g_free (path);
- return NULL;
- }
-
- strncpy (path2, "/proc/self/exe", buf_size - 1);
-
- while (1) {
- int i;
-
- size = readlink (path2, path, buf_size - 1);
- if (size == -1) {
- /* Error. */
- g_free (path2);
- break;
- }
-
- /* readlink() success. */
- path[size] = '\0';
-
- /* Check whether the symlink's target is also a symlink.
- * We want to get the final target. */
- i = stat (path, &stat_buf);
- if (i == -1) {
- /* Error. */
- g_free (path2);
- break;
- }
-
- /* stat() success. */
- if (!S_ISLNK (stat_buf.st_mode)) {
- /* path is not a symlink. Done. */
- g_free (path2);
- return path;
- }
-
- /* path is a symlink. Continue loop and resolve this. */
- strncpy (path, path2, buf_size - 1);
- }
-
-
- /* readlink() or stat() failed; this can happen when the program is
- * running in Valgrind 2.2. Read from /proc/self/maps as fallback. */
-
- buf_size = PATH_MAX + 128;
- line = (char *) g_try_realloc (path, buf_size);
- if (line == NULL) {
- /* Cannot allocate memory. */
- g_free (path);
- if (error)
- *error = GBR_INIT_ERROR_NOMEM;
- return NULL;
- }
-
- f = fopen ("/proc/self/maps", "r");
- if (f == NULL) {
- g_free (line);
- if (error)
- *error = GBR_INIT_ERROR_OPEN_MAPS;
- return NULL;
- }
-
- /* The first entry should be the executable name. */
- result = fgets (line, (int) buf_size, f);
- if (result == NULL) {
- fclose (f);
- g_free (line);
- if (error)
- *error = GBR_INIT_ERROR_READ_MAPS;
- return NULL;
- }
-
- /* Get rid of newline character. */
- buf_size = strlen (line);
- if (buf_size <= 0) {
- /* Huh? An empty string? */
- fclose (f);
- g_free (line);
- if (error)
- *error = GBR_INIT_ERROR_INVALID_MAPS;
- return NULL;
- }
- if (line[buf_size - 1] == 10)
- line[buf_size - 1] = 0;
-
- /* Extract the filename; it is always an absolute path. */
- path = strchr (line, '/');
-
- /* Sanity check. */
- if (strstr (line, " r-xp ") == NULL || path == NULL) {
- fclose (f);
- g_free (line);
- if (error)
- *error = GBR_INIT_ERROR_INVALID_MAPS;
- return NULL;
- }
-
- path = g_strdup (path);
- g_free (line);
- fclose (f);
- return path;
-#endif /* ENABLE_BINRELOC */
-}
-
-
-/** @internal
- * Find the canonical filename of the executable which owns symbol.
- * Returns a filename which must be freed, or NULL on error.
- */
-static char *
-_br_find_exe_for_symbol (const void *symbol, GbrInitError *error)
-{
-#ifndef ENABLE_BINRELOC
- if (error)
- *error = GBR_INIT_ERROR_DISABLED;
- return (char *) NULL;
-#else
- #define SIZE PATH_MAX + 100
- FILE *f;
- size_t address_string_len;
- char *address_string, line[SIZE], *found;
-
- if (symbol == NULL)
- return (char *) NULL;
-
- f = fopen ("/proc/self/maps", "r");
- if (f == NULL)
- return (char *) NULL;
-
- address_string_len = 4;
- address_string = (char *) g_try_malloc (address_string_len);
- found = (char *) NULL;
-
- while (!feof (f)) {
- char *start_addr, *end_addr, *end_addr_end, *file;
- void *start_addr_p, *end_addr_p;
- size_t len;
-
- if (fgets (line, SIZE, f) == NULL)
- break;
-
- /* Sanity check. */
- if (strstr (line, " r-xp ") == NULL || strchr (line, '/') == NULL)
- continue;
-
- /* Parse line. */
- start_addr = line;
- end_addr = strchr (line, '-');
- file = strchr (line, '/');
-
- /* More sanity check. */
- if (!(file > end_addr && end_addr != NULL && end_addr[0] == '-'))
- continue;
-
- end_addr[0] = '\0';
- end_addr++;
- end_addr_end = strchr (end_addr, ' ');
- if (end_addr_end == NULL)
- continue;
-
- end_addr_end[0] = '\0';
- len = strlen (file);
- if (len == 0)
- continue;
- if (file[len - 1] == '\n')
- file[len - 1] = '\0';
-
- /* Get rid of "(deleted)" from the filename. */
- len = strlen (file);
- if (len > 10 && strcmp (file + len - 10, " (deleted)") == 0)
- file[len - 10] = '\0';
-
- /* I don't know whether this can happen but better safe than sorry. */
- len = strlen (start_addr);
- if (len != strlen (end_addr))
- continue;
-
-
- /* Transform the addresses into a string in the form of 0xdeadbeef,
- * then transform that into a pointer. */
- if (address_string_len < len + 3) {
- address_string_len = len + 3;
- address_string = (char *) g_try_realloc (address_string, address_string_len);
- }
-
- memcpy (address_string, "0x", 2);
- memcpy (address_string + 2, start_addr, len);
- address_string[2 + len] = '\0';
- sscanf (address_string, "%p", &start_addr_p);
-
- memcpy (address_string, "0x", 2);
- memcpy (address_string + 2, end_addr, len);
- address_string[2 + len] = '\0';
- sscanf (address_string, "%p", &end_addr_p);
-
-
- if (symbol >= start_addr_p && symbol < end_addr_p) {
- found = file;
- break;
- }
- }
-
- g_free (address_string);
- fclose (f);
-
- if (found == NULL)
- return (char *) NULL;
- else
- return g_strdup (found);
-#endif /* ENABLE_BINRELOC */
-}
-
-
-static gchar *exe = NULL;
-
-static void set_gerror (GError **error, GbrInitError errcode);
-
-
-/** Initialize the BinReloc library (for applications).
- *
- * This function must be called before using any other BinReloc functions.
- * It attempts to locate the application's canonical filename.
- *
- * @note If you want to use BinReloc for a library, then you should call
- * gbr_init_lib() instead.
- *
- * @param error If BinReloc failed to initialize, then the error report will
- * be stored in this variable. Set to NULL if you don't want an
- * error report. See the #GbrInitError for a list of error
- * codes.
- *
- * @returns TRUE on success, FALSE if BinReloc failed to initialize.
- */
-gboolean
-gbr_init (GError **error)
-{
- GbrInitError errcode;
-
- /* Locate the application's filename. */
- exe = _br_find_exe (&errcode);
- if (exe != NULL)
- /* Success! */
- return TRUE;
- else {
- /* Failed :-( */
- set_gerror (error, errcode);
- return FALSE;
- }
-}
-
-
-/** Initialize the BinReloc library (for libraries).
- *
- * This function must be called before using any other BinReloc functions.
- * It attempts to locate the calling library's canonical filename.
- *
- * @note The BinReloc source code MUST be included in your library, or this
- * function won't work correctly.
- *
- * @returns TRUE on success, FALSE if a filename cannot be found.
- */
-gboolean
-gbr_init_lib (GError **error)
-{
- GbrInitError errcode;
-
- exe = _br_find_exe_for_symbol ((const void *) "", &errcode);
- if (exe != NULL)
- /* Success! */
- return TRUE;
- else {
- /* Failed :-( */
- set_gerror (error, errcode);
- return exe != NULL;
- }
-}
-
-
-static void
-set_gerror (GError **error, GbrInitError errcode)
-{
- const gchar *error_message;
-
- if (error == NULL)
- return;
-
- switch (errcode) {
- case GBR_INIT_ERROR_NOMEM:
- error_message = "Cannot allocate memory.";
- break;
- case GBR_INIT_ERROR_OPEN_MAPS:
- error_message = "Unable to open /proc/self/maps for reading.";
- break;
- case GBR_INIT_ERROR_READ_MAPS:
- error_message = "Unable to read from /proc/self/maps.";
- break;
- case GBR_INIT_ERROR_INVALID_MAPS:
- error_message = "The file format of /proc/self/maps is invalid.";
- break;
- case GBR_INIT_ERROR_DISABLED:
- error_message = "Binary relocation support is disabled.";
- break;
- default:
- error_message = "Unknown error.";
- break;
- };
- g_set_error (error, g_quark_from_static_string ("GBinReloc"),
- errcode, "%s", error_message);
-}
-
-
-/** Find the canonical filename of the current application.
- *
- * @param default_exe A default filename which will be used as fallback.
- * @returns A string containing the application's canonical filename,
- * which must be freed when no longer necessary. If BinReloc is
- * not initialized, or if the initialization function failed,
- * then a copy of default_exe will be returned. If default_exe
- * is NULL, then NULL will be returned.
- */
-gchar *
-gbr_find_exe (const gchar *default_exe)
-{
- if (exe == NULL) {
- /* BinReloc is not initialized. */
- if (default_exe != NULL)
- return g_strdup (default_exe);
- else
- return NULL;
- }
- return g_strdup (exe);
-}
-
-
-/** Locate the directory in which the current application is installed.
- *
- * The prefix is generated by the following pseudo-code evaluation:
- * \code
- * dirname(exename)
- * \endcode
- *
- * @param default_dir A default directory which will used as fallback.
- * @return A string containing the directory, which must be freed when no
- * longer necessary. If BinReloc is not initialized, or if the
- * initialization function failed, then a copy of default_dir
- * will be returned. If default_dir is NULL, then NULL will be
- * returned.
- */
-gchar *
-gbr_find_exe_dir (const gchar *default_dir)
-{
- if (exe == NULL) {
- /* BinReloc not initialized. */
- if (default_dir != NULL)
- return g_strdup (default_dir);
- else
- return NULL;
- }
-
- return g_path_get_dirname (exe);
-}
-
-
-/** Locate the prefix in which the current application is installed.
- *
- * The prefix is generated by the following pseudo-code evaluation:
- * \code
- * dirname(dirname(exename))
- * \endcode
- *
- * @param default_prefix A default prefix which will used as fallback.
- * @return A string containing the prefix, which must be freed when no
- * longer necessary. If BinReloc is not initialized, or if the
- * initialization function failed, then a copy of default_prefix
- * will be returned. If default_prefix is NULL, then NULL will be
- * returned.
- */
-gchar *
-gbr_find_prefix (const gchar *default_prefix)
-{
- gchar *dir1, *dir2;
-
- if (exe == NULL) {
- /* BinReloc not initialized. */
- if (default_prefix != NULL)
- return g_strdup (default_prefix);
- else
- return NULL;
- }
-
- dir1 = g_path_get_dirname (exe);
- dir2 = g_path_get_dirname (dir1);
- g_free (dir1);
- return dir2;
-}
-
-
-/** Locate the application's binary folder.
- *
- * The path is generated by the following pseudo-code evaluation:
- * \code
- * prefix + "/bin"
- * \endcode
- *
- * @param default_bin_dir A default path which will used as fallback.
- * @return A string containing the bin folder's path, which must be freed when
- * no longer necessary. If BinReloc is not initialized, or if the
- * initialization function failed, then a copy of default_bin_dir will
- * be returned. If default_bin_dir is NULL, then NULL will be returned.
- */
-gchar *
-gbr_find_bin_dir (const gchar *default_bin_dir)
-{
- gchar *prefix, *dir;
-
- prefix = gbr_find_prefix (NULL);
- if (prefix == NULL) {
- /* BinReloc not initialized. */
- if (default_bin_dir != NULL)
- return g_strdup (default_bin_dir);
- else
- return NULL;
- }
-
- dir = g_build_filename (prefix, "bin", NULL);
- g_free (prefix);
- return dir;
-}
-
-
-/** Locate the application's superuser binary folder.
- *
- * The path is generated by the following pseudo-code evaluation:
- * \code
- * prefix + "/sbin"
- * \endcode
- *
- * @param default_sbin_dir A default path which will used as fallback.
- * @return A string containing the sbin folder's path, which must be freed when
- * no longer necessary. If BinReloc is not initialized, or if the
- * initialization function failed, then a copy of default_sbin_dir will
- * be returned. If default_bin_dir is NULL, then NULL will be returned.
- */
-gchar *
-gbr_find_sbin_dir (const gchar *default_sbin_dir)
-{
- gchar *prefix, *dir;
-
- prefix = gbr_find_prefix (NULL);
- if (prefix == NULL) {
- /* BinReloc not initialized. */
- if (default_sbin_dir != NULL)
- return g_strdup (default_sbin_dir);
- else
- return NULL;
- }
-
- dir = g_build_filename (prefix, "sbin", NULL);
- g_free (prefix);
- return dir;
-}
-
-
-/** Locate the application's data folder.
- *
- * The path is generated by the following pseudo-code evaluation:
- * \code
- * prefix + "/share"
- * \endcode
- *
- * @param default_data_dir A default path which will used as fallback.
- * @return A string containing the data folder's path, which must be freed when
- * no longer necessary. If BinReloc is not initialized, or if the
- * initialization function failed, then a copy of default_data_dir
- * will be returned. If default_data_dir is NULL, then NULL will be
- * returned.
- */
-gchar *
-gbr_find_data_dir (const gchar *default_data_dir)
-{
- gchar *prefix, *dir;
-
- prefix = gbr_find_prefix (NULL);
- if (prefix == NULL) {
- /* BinReloc not initialized. */
- if (default_data_dir != NULL)
- return g_strdup (default_data_dir);
- else
- return NULL;
- }
-
- dir = g_build_filename (prefix, "share", NULL);
- g_free (prefix);
- return dir;
-}
-
-
-/** Locate the application's localization folder.
- *
- * The path is generated by the following pseudo-code evaluation:
- * \code
- * prefix + "/share/locale"
- * \endcode
- *
- * @param default_locale_dir A default path which will used as fallback.
- * @return A string containing the localization folder's path, which must be freed when
- * no longer necessary. If BinReloc is not initialized, or if the
- * initialization function failed, then a copy of default_locale_dir will be returned.
- * If default_locale_dir is NULL, then NULL will be returned.
- */
-gchar *
-gbr_find_locale_dir (const gchar *default_locale_dir)
-{
- gchar *data_dir, *dir;
-
- data_dir = gbr_find_data_dir (NULL);
- if (data_dir == NULL) {
- /* BinReloc not initialized. */
- if (default_locale_dir != NULL)
- return g_strdup (default_locale_dir);
- else
- return NULL;
- }
-
- dir = g_build_filename (data_dir, "locale", NULL);
- g_free (data_dir);
- return dir;
-}
-
-
-/** Locate the application's library folder.
- *
- * The path is generated by the following pseudo-code evaluation:
- * \code
- * prefix + "/lib"
- * \endcode
- *
- * @param default_lib_dir A default path which will used as fallback.
- * @return A string containing the library folder's path, which must be freed when
- * no longer necessary. If BinReloc is not initialized, or if the
- * initialization function failed, then a copy of default_lib_dir will be returned.
- * If default_lib_dir is NULL, then NULL will be returned.
- */
-gchar *
-gbr_find_lib_dir (const gchar *default_lib_dir)
-{
- gchar *prefix, *dir;
-
- prefix = gbr_find_prefix (NULL);
- if (prefix == NULL) {
- /* BinReloc not initialized. */
- if (default_lib_dir != NULL)
- return g_strdup (default_lib_dir);
- else
- return NULL;
- }
-
- dir = g_build_filename (prefix, "lib", NULL);
- g_free (prefix);
- return dir;
-}
-
-
-/** Locate the application's libexec folder.
- *
- * The path is generated by the following pseudo-code evaluation:
- * \code
- * prefix + "/libexec"
- * \endcode
- *
- * @param default_libexec_dir A default path which will used as fallback.
- * @return A string containing the libexec folder's path, which must be freed when
- * no longer necessary. If BinReloc is not initialized, or if the initialization
- * function failed, then a copy of default_libexec_dir will be returned.
- * If default_libexec_dir is NULL, then NULL will be returned.
- */
-gchar *
-gbr_find_libexec_dir (const gchar *default_libexec_dir)
-{
- gchar *prefix, *dir;
-
- prefix = gbr_find_prefix (NULL);
- if (prefix == NULL) {
- /* BinReloc not initialized. */
- if (default_libexec_dir != NULL)
- return g_strdup (default_libexec_dir);
- else
- return NULL;
- }
-
- dir = g_build_filename (prefix, "libexec", NULL);
- g_free (prefix);
- return dir;
-}
-
-
-/** Locate the application's configuration files folder.
- *
- * The path is generated by the following pseudo-code evaluation:
- * \code
- * prefix + "/etc"
- * \endcode
- *
- * @param default_etc_dir A default path which will used as fallback.
- * @return A string containing the etc folder's path, which must be freed when
- * no longer necessary. If BinReloc is not initialized, or if the initialization
- * function failed, then a copy of default_etc_dir will be returned.
- * If default_etc_dir is NULL, then NULL will be returned.
- */
-gchar *
-gbr_find_etc_dir (const gchar *default_etc_dir)
-{
- gchar *prefix, *dir;
-
- prefix = gbr_find_prefix (NULL);
- if (prefix == NULL) {
- /* BinReloc not initialized. */
- if (default_etc_dir != NULL)
- return g_strdup (default_etc_dir);
- else
- return NULL;
- }
-
- dir = g_build_filename (prefix, "etc", NULL);
- g_free (prefix);
- return dir;
-}
-
-
-G_END_DECLS
-
-#endif /* __BINRELOC_C__ */
diff --git a/src/prefix.h b/src/prefix.h
deleted file mode 100644
index 55d5829..0000000
--- a/src/prefix.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * BinReloc - a library for creating relocatable executables
- * Written by: Hongli Lai <h.lai@chello.nl>
- * http://autopackage.org/
- *
- * This source code is public domain. You can relicense this code
- * under whatever license you want.
- *
- * See http://autopackage.org/docs/binreloc/ for
- * more information and how to use this.
- */
-
-#ifndef __BINRELOC_H__
-#define __BINRELOC_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-
-/** These error codes can be returned by br_init(), br_init_lib(), gbr_init() or gbr_init_lib(). */
-typedef enum {
- /** Cannot allocate memory. */
- GBR_INIT_ERROR_NOMEM,
- /** Unable to open /proc/self/maps; see errno for details. */
- GBR_INIT_ERROR_OPEN_MAPS,
- /** Unable to read from /proc/self/maps; see errno for details. */
- GBR_INIT_ERROR_READ_MAPS,
- /** The file format of /proc/self/maps is invalid; kernel bug? */
- GBR_INIT_ERROR_INVALID_MAPS,
- /** BinReloc is disabled (the ENABLE_BINRELOC macro is not defined). */
- GBR_INIT_ERROR_DISABLED
-} GbrInitError;
-
-
-#ifndef BINRELOC_RUNNING_DOXYGEN
-/* Mangle symbol names to avoid symbol collisions with other ELF objects. */
- #define gbr_find_exe qYFU3719188448765_gbr_find_exe
- #define gbr_find_exe_dir qYFU3719188448765_gbr_find_exe_dir
- #define gbr_find_prefix qYFU3719188448765_gbr_find_prefix
- #define gbr_find_bin_dir qYFU3719188448765_gbr_find_bin_dir
- #define gbr_find_sbin_dir qYFU3719188448765_gbr_find_sbin_dir
- #define gbr_find_data_dir qYFU3719188448765_gbr_find_data_dir
- #define gbr_find_locale_dir qYFU3719188448765_gbr_find_locale_dir
- #define gbr_find_lib_dir qYFU3719188448765_gbr_find_lib_dir
- #define gbr_find_libexec_dir qYFU3719188448765_gbr_find_libexec_dir
- #define gbr_find_etc_dir qYFU3719188448765_gbr_find_etc_dir
-
-
-#endif
-gboolean gbr_init (GError **error);
-gboolean gbr_init_lib (GError **error);
-
-gchar *gbr_find_exe (const gchar *default_exe);
-gchar *gbr_find_exe_dir (const gchar *default_dir);
-gchar *gbr_find_prefix (const gchar *default_prefix);
-gchar *gbr_find_bin_dir (const gchar *default_bin_dir);
-gchar *gbr_find_sbin_dir (const gchar *default_sbin_dir);
-gchar *gbr_find_data_dir (const gchar *default_data_dir);
-gchar *gbr_find_locale_dir (const gchar *default_locale_dir);
-gchar *gbr_find_lib_dir (const gchar *default_lib_dir);
-gchar *gbr_find_libexec_dir (const gchar *default_libexec_dir);
-gchar *gbr_find_etc_dir (const gchar *default_etc_dir);
-
-
-G_END_DECLS
-
-#endif /* __BINRELOC_H__ */
diff --git a/unittests/EnchantTestFixture.h b/unittests/EnchantTestFixture.h
index 301518d..be76efa 100644
--- a/unittests/EnchantTestFixture.h
+++ b/unittests/EnchantTestFixture.h
@@ -272,10 +272,6 @@ struct EnchantTestFixture
PathRemoveFileSpec((LPWSTR)&szFilename);
result = Convert(szFilename);
-#elif defined(ENABLE_BINRELOC)
- gchar* prefix = gbr_find_prefix(NULL);
- result = std::string(prefix);
- g_free(prefix);
#endif
return result;
}