libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

add cegcc support


From: Vincent Torri
Subject: add cegcc support
Date: Sun, 13 Apr 2008 23:51:00 +0200 (CEST)


Hey,

Here is a patch to make libtool support the cegcc compiler. The patch is made wrt the latest cvs.

best regards

Vincent Torri


? libtool_cegcc.diff
Index: ChangeLog
===================================================================
RCS file: /sources/libtool/libtool/ChangeLog,v
retrieving revision 1.2634
diff -u -r1.2634 ChangeLog
--- ChangeLog   11 Apr 2008 17:21:54 -0000      1.2634
+++ ChangeLog   13 Apr 2008 21:47:06 -0000
@@ -1,3 +1,11 @@
+2008-04-13  Vincent Torri  <doursse at users dot sf dot net>
+
+       Add cegcc support
+       * libltdl/config/ltmain.m4sh:
+       * libltdl/m4/libtool.m4:
+       * libltdl/m4/ltoptions.m4:
+       add 'cegcc' when needed
+
 2008-04-11  Eric Blake  <address@hidden>

        Fix usage of setmode without declaration on cygwin.
Index: libltdl/config/ltmain.m4sh
===================================================================
RCS file: /sources/libtool/libtool/libltdl/config/ltmain.m4sh,v
retrieving revision 1.106
diff -u -r1.106 ltmain.m4sh
--- libltdl/config/ltmain.m4sh  11 Apr 2008 17:21:55 -0000      1.106
+++ libltdl/config/ltmain.m4sh  13 Apr 2008 21:47:08 -0000
@@ -363,7 +363,7 @@


   case $host in
-    *cygwin* | *mingw* | *pw32*)
+    *cygwin* | *mingw* | *pw32* | *cegcc)
       # don't eliminate duplications in $postdeps and $predeps
       opt_duplicate_compiler_generated_deps=:
       ;;
@@ -836,7 +836,7 @@

# On Cygwin there's no "real" PIC flag so we must build both object types
     case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
+    cygwin* | mingw* | pw32* | os2* | cegcc)
       pic_mode=default
       ;;
     esac
@@ -1608,7 +1608,7 @@
              'exit $?'
          tstripme="$stripme"
          case $host_os in
-         cygwin* | mingw* | pw32*)
+         cygwin* | mingw* | pw32* | cegcc)
            case $realname in
            *.dll.a)
              tstripme=""
@@ -1714,7 +1714,7 @@

        # Do a test to see if this is really a libtool program.
        case $host in
-       *cygwin*|*mingw*)
+       *cygwin* | *mingw* | *cegcc)
            if func_ltwrapper_executable_p "$file"; then
              func_ltwrapper_scriptname "$file"
              wrapper=$func_ltwrapper_scriptname_result
@@ -1920,7 +1920,7 @@
              $RM $export_symbols
eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
              case $host in
-             *cygwin* | *mingw* )
+             *cygwin* | *mingw* | *cegcc )
                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
                ;;
@@ -1932,7 +1932,7 @@
eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
              eval '$MV "$nlist"T "$nlist"'
              case $host in
-               *cygwin | *mingw* )
+               *cygwin | *mingw* | *cegcc )
                  eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
                  eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
                  ;;
@@ -1988,7 +1988,7 @@
 } lt_dlsymlist;
 "
          case $host in
-         *cygwin* | *mingw* )
+         *cygwin* | *mingw* | *cegcc )
            $ECHO >> "$output_objdir/$my_dlsyms" "\
 /* DATA imports from DLLs on WIN32 con't be const, because
    runtime relocations are performed -- see ld's documentation
@@ -2074,7 +2074,7 @@
        # Transform the symbol file into the correct name.
        symfileobj="$output_objdir/${my_outputname}S.$objext"
        case $host in
-       *cygwin* | *mingw* )
+       *cygwin* | *mingw* | *cegcc )
          if test -f "$output_objdir/$my_outputname.def"; then
compile_command=`$ECHO "X$compile_command" | $Xsed -e "address@hidden@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "address@hidden@%$output_objdir/$my_outputname.def $symfileobj%"`
@@ -2449,7 +2449,7 @@
 "
        case $host in
        # Backslashes separate directories on plain windows
-       *-*-mingw | *-*-os2*)
+       *-*-mingw | *-*-os2* | *-cegcc)
          $ECHO "\
       exec \"\$progdir\\\\\$program\" \${1+\"address@hidden"}
 "
@@ -2654,7 +2654,7 @@
        {
 EOF
            case "$host" in
-             *mingw* | *cygwin* )
+             *mingw* | *cygwin* | *cegcc )
                # make stdout use "unix" line endings
                echo "          setmode(1,_O_BINARY);"
                ;;
@@ -2731,7 +2731,7 @@


            case $host_os in
-             mingw*)
+             mingw* | cegcc)
            cat <<"EOF"
   {
     char* p;
@@ -2770,7 +2770,7 @@
 EOF

            case $host_os in
-             mingw*)
+             mingw* | cegcc)
                cat <<EOF
   /* execv doesn't actually work on mingw as expected on unix */
rval = _spawnv (_P_WAIT, "$lt_newargv0", (const char * const *) newargz);
@@ -3076,7 +3076,7 @@
 {
     $opt_debug
     case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc)
       # It is impossible to link a dll without this setting, and
       # we shouldn't force the makefile maintainer to figure out
       # which system we are compiling for in order to pass an extra
@@ -3537,7 +3537,7 @@
          ;;
        esac
        case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc)
          testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
          case :$dllsearchpath: in
          *":$dir:"*) ;;
@@ -3555,7 +3555,7 @@
       -l*)
        if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
          case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc)
# These systems don't actually have a C or math library (as such)
            continue
            ;;
@@ -3632,7 +3632,7 @@

       -no-install)
        case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc)
          # The PATH hackery in wrapper scripts is required on Windows
          # and Darwin in order for the loader to find any dlls it needs.
          func_warning "\`-no-install' is ignored for $host"
@@ -4589,7 +4589,7 @@
        if test -n "$library_names" &&
{ test "$use_static_libs" = no || test -z "$old_library"; }; then
          case $host in
-         *cygwin* | *mingw*)
+         *cygwin* | *mingw* | *cegcc)
              # No point in relinking DLLs because paths are not encoded
              notinst_deplibs="$notinst_deplibs $lib"
              need_relink=no
@@ -4659,7 +4659,7 @@
            elif test -n "$soname_spec"; then
              # bleh windows
              case $host in
-             *cygwin* | mingw*)
+             *cygwin* | mingw* | *cegcc)
                major=`expr $current - $age`
                versuffix="-$major"
                ;;
@@ -5498,7 +5498,7 @@
       if test "$build_libtool_libs" = yes; then
        if test -n "$rpath"; then
          case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc)
            # these systems don't actually have a c library (as such)!
            ;;
          *-*-rhapsody* | *-*-darwin1.[012])
@@ -5985,7 +5985,7 @@

        orig_export_symbols=
        case $host_os in
-       cygwin* | mingw*)
+       cygwin* | mingw* | cegcc)
if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
            # exporting using user supplied symfile
            if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
@@ -6599,7 +6599,7 @@
          esac
        fi
        case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc)
          testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
          case :$dllsearchpath: in
          *":$libdir:"*) ;;
@@ -6671,7 +6671,7 @@

       wrappers_required=yes
       case $host in
-      *cygwin* | *mingw* )
+      *cygwin* | *mingw* | *cegcc )
         if test "$build_libtool_libs" != yes; then
           wrappers_required=no
         fi
@@ -6817,7 +6817,7 @@
          *) exeext= ;;
        esac
        case $host in
-         *cygwin* | *mingw* )
+         *cygwin* | *mingw* | *cegcc )
            func_dirname_and_basename "$output" "" "."
            output_name=$func_basename_result
            output_path=$func_dirname_result
@@ -7109,7 +7109,7 @@
          # place dlname in correct position for cygwin
          tdlname=$dlname
          case $host,$output,$installed,$module,$dlname in
- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
          esac
          $ECHO > $output "\
 # $outputname - a libtool library file
Index: libltdl/m4/libtool.m4
===================================================================
RCS file: /sources/libtool/libtool/libltdl/m4/libtool.m4,v
retrieving revision 1.148
diff -u -r1.148 libtool.m4
--- libltdl/m4/libtool.m4       10 Apr 2008 21:18:02 -0000      1.148
+++ libltdl/m4/libtool.m4       13 Apr 2008 21:47:11 -0000
@@ -1503,7 +1503,7 @@
     lt_cv_sys_max_cmd_len=-1;
     ;;

-  cygwin* | mingw*)
+  cygwin* | mingw* | cegcc)
     # On Win9x/ME, this test blows up -- it succeeds, but takes
     # about 5 minutes as the teststring grows exponentially.
     # Worse, since 9x/ME are not pre-emptively multitasking,
@@ -1729,7 +1729,7 @@
     lt_cv_dlopen_self=yes
     ;;

-  mingw* | pw32*)
+  mingw* | pw32* | cegcc)
     lt_cv_dlopen="LoadLibrary"
     lt_cv_dlopen_libs=
     ;;
@@ -2190,14 +2190,14 @@
   # libtool to hard-code these into programs
   ;;

-cygwin* | mingw* | pw32*)
+cygwin* | mingw* | pw32* | cegcc)
   version_type=windows
   shrext_cmds=".dll"
   need_version=no
   need_lib_prefix=no

   case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
+  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc)
     library_names_spec='$libname.dll.a'
     # DLL is installed to $(libdir)/../bin by postinstall_cmds
     postinstall_cmds='base_file=`basename \${file}`~
@@ -2220,7 +2220,7 @@
soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
       sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
       ;;
-    mingw*)
+    mingw* | cegcc)
       # MinGW DLLs use traditional 'lib' prefix
soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
@@ -2997,6 +2997,13 @@
   fi
   ;;

+cegcc)
+  # ?? shouldn't this be based no build_os, not host_os?
+  # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
 darwin* | rhapsody*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3308,7 +3315,7 @@
 aix*)
   symcode='[[BCDT]]'
   ;;
-cygwin* | mingw* | pw32*)
+cygwin* | mingw* | pw32* | cegcc)
   symcode='[[ABCDGISTW]]'
   ;;
 hpux*)
@@ -3554,7 +3561,7 @@
     beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
-    mingw* | cygwin* | os2* | pw32*)
+    mingw* | cygwin* | os2* | pw32* | cegcc)
       # This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -3853,7 +3860,7 @@
       # PIC is the default for these OSes.
       ;;

-    mingw* | cygwin* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2* | cegcc)
       # This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style
@@ -3922,7 +3929,7 @@
       fi
       ;;

-    mingw* | cygwin* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2* | cegcc)
       # This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
       m4_if([$1], [GCJ], [],
@@ -4139,7 +4146,7 @@
   pw32*)
     _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
   ;;
-  cygwin* | mingw*)
+  cygwin* | mingw* | cegcc)
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
   *)
@@ -4191,7 +4198,7 @@
   extract_expsyms_cmds=

   case $host_os in
-  cygwin* | mingw* | pw32*)
+  cygwin* | mingw* | pw32* | cegcc)
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
@@ -4278,7 +4285,7 @@
       fi
       ;;

-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc)
# _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
@@ -4629,7 +4636,7 @@
       _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
       ;;

-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc)
       # When not using gcc, we currently assume that we are using
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -5576,7 +5583,7 @@
         esac
         ;;

-      cygwin* | mingw* | pw32*)
+      cygwin* | mingw* | pw32* | cegcc)
# _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
         # as there is no search path for DLLs.
         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
Index: libltdl/m4/ltoptions.m4
===================================================================
RCS file: /sources/libtool/libtool/libltdl/m4/ltoptions.m4,v
retrieving revision 1.14
diff -u -r1.14 ltoptions.m4
--- libltdl/m4/ltoptions.m4     1 Apr 2008 18:23:20 -0000       1.14
+++ libltdl/m4/ltoptions.m4     13 Apr 2008 21:47:11 -0000
@@ -125,7 +125,7 @@
 [enable_win32_dll=yes

 case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
   AC_CHECK_TOOL(AS, as, false)
   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
   AC_CHECK_TOOL(OBJDUMP, objdump, false)

Attachment: libtool_cegcc.diff
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]