This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] use eglibc configuration file


Hi,

Here is a patch to crosstool-ng to add support for a user provided eglibc configuration file. This allows to configure option groups, and nsswitch functions and config files if wanted.

Regards,

--
Arnaud Vrac
diff -r 8d386988dcb1 config/libc/eglibc.in
--- a/config/libc/eglibc.in	Sun Oct 04 12:53:12 2009 +0200
+++ b/config/libc/eglibc.in	Tue Oct 06 18:26:51 2009 +0200
@@ -90,3 +90,39 @@
       
       Note that crosstool-NG will *not* update your working copy, you will
       have to do that yourself.
+
+config EGLIBC_USE_CUSTOM_CONFIG
+    bool
+    prompt "use user provided configuration file"
+    default n
+    help
+      Use a custom configuration file to disable some features in the eglibc
+      library. For more info read the EGLIBC.option-groups file in the eglibc
+      source directory.
+
+if EGLIBC_USE_CUSTOM_CONFIG
+    config EGLIBC_OPTION_GROUPS_FILE
+        string
+        prompt "Option groups configuration file"
+        default ""
+        help
+          Path to the file to configure eglibc option groups.
+
+    config EGLIBC_NSS_CONFIG_FILE
+        string
+        prompt "NSS config file"
+        default ""
+        help
+          Path to the nsswitch configuration file when the
+          OPTION_EGLIBC_NSSWITCH feature is disabled in the option groups
+          configuration file.
+
+    config EGLIBC_NSS_FUNCTIONS_FILE
+        string
+        prompt "NSS functions file"
+        default ""
+        help
+          Path to the nsswitch functions file when the
+          OPTION_EGLIBC_NSSWITCH feature is disabled in the option groups
+          configuration file.
+endif
diff -r 8d386988dcb1 scripts/build/libc/eglibc.sh
--- a/scripts/build/libc/eglibc.sh	Sun Oct 04 12:53:12 2009 +0200
+++ b/scripts/build/libc/eglibc.sh	Tue Oct 06 18:26:51 2009 +0200
@@ -124,7 +124,29 @@
 
 # There is nothing to do for eglibc check config
 do_libc_check_config() {
-    :
+    if [ "${CT_EGLIBC_USE_CUSTOM_CONFIG}" != "y" ]; then
+        return 0
+    fi
+
+    CT_DoStep INFO "Checking C library configuration"
+
+    CT_TestOrAbort "You did not provide an eglibc config file!" -f "${CT_EGLIBC_OPTION_GROUPS_FILE}"
+
+    cp "${CT_EGLIBC_OPTION_GROUPS_FILE}" "${CT_CONFIG_DIR}/eglibc.config"
+
+    if [ -f "${CT_EGLIBC_NSS_CONFIG_FILE}" ]; then
+        cp "${CT_EGLIBC_NSS_CONFIG_FILE}" "${CT_CONFIG_DIR}/nsswitch.config"
+        echo "OPTION_EGLIBC_NSSWITCH_FIXED_CONFIG = ${CT_CONFIG_DIR}/nsswitch.config" \
+            >> "${CT_CONFIG_DIR}/eglibc.config"
+    fi
+
+    if [ -f "${CT_EGLIBC_NSS_FUNCTIONS_FILE}" ]; then
+        cp "${CT_EGLIBC_NSS_FUNCTIONS_FILE}" "${CT_CONFIG_DIR}/nsswitch.functions"
+        echo "OPTION_EGLIBC_NSSWITCH_FIXED_FUNCTIONS = ${CT_CONFIG_DIR}/nsswitch.functions" \
+            >> "${CT_CONFIG_DIR}/eglibc.config"
+    fi
+
+    CT_EndStep
 }
 
 # This function installs the eglibc headers needed to build the core compiler
@@ -143,6 +165,8 @@
 
     CT_DoLog EXTRA "Configuring C library"
 
+    cp "${CT_CONFIG_DIR}/eglibc.config" option-groups.config
+
     cross_cc=$(CT_Which "${CT_TARGET}-gcc")
     cross_cxx=$(CT_Which "${CT_TARGET}-g++")
     cross_ar=$(CT_Which "${CT_TARGET}-ar")
@@ -210,6 +234,8 @@
 
     CT_DoLog EXTRA "Configuring C library"
 
+    cp "${CT_CONFIG_DIR}/eglibc.config" option-groups.config
+
     # Add some default glibc config options if not given by user.
     # We don't need to be conditional on wether the user did set different
     # values, as they CT_LIBC_GLIBC_EXTRA_CONFIG is passed after extra_config

--
For unsubscribe information see http://sourceware.org/lists.html#faq

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]