diff --git a/mail/cygwin32 b/mail/cygwin32 index bcdfb6a0..de2a0ae3 100644 --- a/mail/cygwin32 +++ b/mail/cygwin32 @@ -1,315 +1,3 @@ -From nobody Wed Oct 14 16:45:23 1998 -X-From-Line: gord@gnu.org Fri Apr 17 23:33:23 1998 -Return-Path: -Delivered-To: gord@trick.profitpress.com -Received: (qmail 23433 invoked from network); 17 Apr 1998 23:33:18 -0000 -Received: from unknown (HELO bambam.m-tech.ab.ca) (127.0.0.1) - by 127.0.0.1 with SMTP; 17 Apr 1998 23:33:18 -0000 -Received: from mescaline.gnu.org (gateway.m-tech.ab.ca [10.0.0.1]) by bambam.m-tech.ab.ca (8.8.5/8.6.9) with ESMTP id OAA06968 for ; Fri, 17 Apr 1998 14:24:44 -0600 -Received: from tweedledumb.cygnus.com by mescaline.gnu.org (8.8.5/8.6.12GNU) with ESMTP id QAA24530 for ; Fri, 17 Apr 1998 16:28:50 -0400 -Received: from subrogation.cygnus.com (subrogation.cygnus.com [192.80.44.76]) - by tweedledumb.cygnus.com (8.8.5/8.8.5) with ESMTP id QAA18910 - for ; Fri, 17 Apr 1998 16:28:46 -0400 (EDT) -Received: (ian@localhost) by subrogation.cygnus.com (950413.SGI.8.6.12/8.6.4) id QAA08423; Fri, 17 Apr 1998 16:28:45 -0400 -Date: Fri, 17 Apr 1998 16:28:45 -0400 -Message-Id: <199804172028.QAA08423@subrogation.cygnus.com> -From: Ian Lance Taylor -To: bug-libtool@gnu.org -Subject: cygwin32 support in libtool -Xref: trick.profitpress.com mail.libtool:1336 -Lines: 290 -X-Gnus-Article-Number: 1 Mon Nov 2 17:17:26 1998 - -Here are the libtool patches I've worked up for cygwin32 support. -These should be relative to the 1.2 release. - -These patches have some bogosities. - -I needed to build a C file to compile when building the DLL. That C -file naturally includes semicolons. I could not figure out how to get -a semicolon into archive_cmds; the various approaches I tried all -failed, because ltmain splits archive_cmds at semicolons. So I wound -up just creating libtool.c in ltconfig. This libtool.c file never -gets deleted. - -Both archive_cmds and old_archive_from_new_cmds need to use the same -definitions file. I created it in archive_cmds and deleted it in -old_archive_from_new_cmds. - -Ian - -Index: ltconfig.in -=================================================================== -RCS file: /cvs/cvsfiles/devo/libtool/ltconfig.in,v -retrieving revision 1.6 -retrieving revision 1.8 -diff -p -r1.6 -r1.8 -*** ltconfig.in 1998/03/23 18:28:53 1.6 ---- ltconfig.in 1998/04/17 20:20:13 1.8 -*************** old_LD="$LD" -*** 97,102 **** ---- 97,104 ---- - old_LN_S="$LN_S" - old_NM="$NM" - old_RANLIB="$RANLIB" -+ old_DLLTOOL="$DLLTOOL" -+ old_AS="$AS" - - # Parse the command line options. - args= -*************** if test -n "$RANLIB"; then -*** 351,356 **** ---- 353,362 ---- - old_postinstall_cmds="\$RANLIB \$oldlib;$old_postinstall_cmds" - fi - -+ # Set sane defaults for `DLLTOOL' and `AS', used on cygwin32. -+ test -z "$DLLTOOL" && DLLTOOL=dlltool -+ test -z "$AS" && AS=as -+ - # Check to see if we are using GCC. - if test "$with_gcc" != yes || test -z "$CC"; then - # If CC is not set, then try to find GCC or a usable CC. -*************** if test "$with_gcc" = yes; then -*** 456,462 **** - aix3* | aix4* | irix5* | irix6* | osf3* | osf4*) - # PIC is the default for these OSes. - ;; -! os2*) - # We can build DLLs from non-PIC. - ;; - amigaos*) ---- 462,468 ---- - aix3* | aix4* | irix5* | irix6* | osf3* | osf4*) - # PIC is the default for these OSes. - ;; -! cygwin32* | os2*) - # We can build DLLs from non-PIC. - ;; - amigaos*) -*************** else -*** 490,496 **** - # PIC (with -KPIC) is the default. - ;; - -! os2*) - # We can build DLLs from non-PIC. - ;; - ---- 496,502 ---- - # PIC (with -KPIC) is the default. - ;; - -! cygwin32* | os2*) - # We can build DLLs from non-PIC. - ;; - -*************** hardcode_shlibpath_var=unsupported -*** 702,708 **** - runpath_var= - - case "$host_os" in -! amigaos* | sunos4*) - # On these operating systems, we should treat GNU ld like the system ld. - gnu_ld_acts_native=yes - ;; ---- 708,714 ---- - runpath_var= - - case "$host_os" in -! amigaos* | sunos4* | cygwin32*) - # On these operating systems, we should treat GNU ld like the system ld. - gnu_ld_acts_native=yes - ;; -*************** else -*** 756,761 **** ---- 762,788 ---- - hardcode_minus_L=yes - ;; - -+ cygwin32*) -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ hardcode_libdir_flag_spec='-L$libdir' -+ allow_undefined_flag=unsupported -+ # Very, very bogus. -+ echo ' -+ #include -+ -+ struct _reent *_impure_ptr; -+ extern struct _reent *__imp_reent_data; -+ BOOL APIENTRY -+ __dll_entry (HINSTANCE hinst, DWORD reason, LPVOID reserved) -+ { -+ _impure_ptr = __imp_reent_data; -+ } -+ ' > libtool.c -+ archive_cmds='$CC -c libtool.c;echo EXPORTS > $soname-def;$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' >> $soname-def;$LD -s --base-file $soname-base --dll -e ___dll_entry@12 -o $lib libtool.o$libobjs$deplibs;$DLLTOOL --as=$AS --dllname $soname --def $soname-def --base-file $soname-base --output-exp $soname-exp;$LD -s --base-file $soname-base $soname-exp --dll -e ___dll_entry@12 -o $lib libtool.o$libobjs$deplibs;$DLLTOOL --as=$AS --dllname $soname --def $soname-def --base-file $soname-base --output-exp $soname-exp;$LD $soname-exp --dll -e ___dll_entry@12 -o $lib libtool.o$libobjs$deplibs;$rm libtool.o $soname-base $soname-exp' -+ old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $soname-def --output-lib $objdir/$libname.a;$rm $soname-def' -+ ;; -+ - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little -*************** case "$host_os" in -*** 936,941 **** ---- 963,972 ---- - aix*) - symcode='[BCDTU]' - ;; -+ cygwin32*) -+ sympat='_\([_A-Za-z][_A-Za-z0-9]*\)' -+ symxfrm='_\1 \1' -+ ;; - irix*) - # Cannot use undefined symbols on IRIX because inlined functions mess us up. - symcode='[BCDEGRST]' -*************** if $NM -V 2>&1 | egrep '(GNU|with BFD)' -*** 950,955 **** ---- 981,994 ---- - symcode='[ABCDGISTUW]' - fi - -+ case "$host_os" in -+ cygwin32*) -+ # We do not want undefined symbols on cygwin32. The user must -+ # arrange to define them via -l arguments. -+ symcode='[ABCDGISTW]' -+ ;; -+ esac -+ - # Write the raw and C identifiers. - global_symbol_pipe="sed -n -e 's/^.* $symcode $sympat$/$symxfrm/p'" - -*************** amigaos*) -*** 1123,1128 **** ---- 1162,1174 ---- - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' - ;; - -+ cygwin32*) -+ version_type=windows -+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' -+ dynamic_linker='Win32 ld.exe' -+ shlibpath_var=PATH -+ ;; -+ - freebsd2* | freebsd3*) - version_type=sunos - library_names_spec='${libname}${release}.so.$versuffix $libname.so' -*************** ltecho="$echo" -*** 1285,1293 **** - - # Now quote all the things that may contain metacharacters. - for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ -! old_LN_S AR CC LD LN_S NM reload_flag reload_cmds wl pic_flag \ -! link_static_flag no_builtin_flag export_dynamic_flag_spec \ -! libname_spec library_names_spec soname_spec RANLIB \ - old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \ - allow_undefined_flag no_undefined_flag \ ---- 1331,1339 ---- - - # Now quote all the things that may contain metacharacters. - for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ -! old_LN_S old_DLLTOOL old_AS AR CC LD LN_S NM DLLTOOL AS reload_flag \ -! reload_cmds wl pic_flag link_static_flag no_builtin_flag \ -! export_dynamic_flag_spec libname_spec library_names_spec soname_spec RANLIB \ - old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - old_postuninstall_cmds archive_cmds postinstall_cmds postuninstall_cmds \ - allow_undefined_flag no_undefined_flag \ -*************** cat < $ofile -*** 1345,1350 **** ---- 1391,1397 ---- - # - # CC="$old_CC" CFLAGS="$old_CFLAGS" CPPFLAGS="$old_CPPFLAGS" \\ - # LD="$old_LD" NM="$old_NM" RANLIB="$old_RANLIB" LN_S="$old_LN_S" \\ -+ # DLLTOOL="$old_DLLTOOL" AS="$old_AS" \\ - # $0$ltconfig_args - # - # Compiler and other test output produced by $progname, useful for -*************** LN_S="$LN_S" -*** 1390,1395 **** ---- 1437,1448 ---- - - # A BSD-compatible nm program. - NM="$NM" -+ -+ # Used on cygwin32: DLL creation program. -+ DLLTOOL="$DLLTOOL" -+ -+ # Used on cygwin32: assembler. -+ AS="$AS" - - # The name of the directory that contains temporary libtool files. - objdir="$objdir" -Index: ltmain.in -=================================================================== -RCS file: /cvs/cvsfiles/devo/libtool/ltmain.in,v -retrieving revision 1.3 -retrieving revision 1.4 -diff -p -r1.3 -r1.4 -*** ltmain.in 1998/03/20 23:35:33 1.3 ---- ltmain.in 1998/04/17 20:20:14 1.4 -*************** if test -z "$show_help"; then -*** 967,972 **** ---- 967,980 ---- - versuffix="$current.$revision" - ;; - -+ windows) -+ # Like Linux, but with '-' rather than '.', and with a leading -+ # '-', since we only want one extension on Windows 95. -+ version_vars="$version_vars major versuffix" -+ major=`expr $current - $age` -+ versuffix="-$major-$age-$revision" -+ ;; -+ - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 -Index: libtool.m4 -=================================================================== -RCS file: /cvs/cvsfiles/devo/libtool/libtool.m4,v -retrieving revision 1.11 -retrieving revision 1.12 -diff -p -r1.11 -r1.12 -*** libtool.m4 1998/04/13 16:09:14 1.11 ---- libtool.m4 1998/04/13 20:44:46 1.12 -*************** case "$host" in -*** 70,80 **** ---- 70,86 ---- - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - CFLAGS="$CFLAGS -belf" - ;; -+ -+ *-*-cygwin32*) -+ AM_SYS_LIBTOOL_CYGWIN32 -+ ;; -+ - esac - - # Actually configure libtool. ac_aux_dir is where install-sh is found. - CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ - LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ -+ DLLTOOL="$DLLTOOL" AS="$AS" \ - ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \ - $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ - || AC_MSG_ERROR([libtool configure failed]) -*************** fi]) -*** 255,258 **** ---- 261,270 ---- - NM="$ac_cv_path_NM" - AC_MSG_RESULT([$NM]) - AC_SUBST(NM) -+ ]) -+ -+ # AM_SYS_LIBTOOL_CYGWIN32 - find tools needed on cygwin32 -+ AC_DEFUN(AM_SYS_LIBTOOL_CYGWIN32, -+ [AC_CHECK_TOOL(DLLTOOL, dlltool, false) -+ AC_CHECK_TOOL(AS, as, false) - ]) - From ian@cygnus.com Tue Nov 3 23:23 EDT 1998 Received: from grande.dcc.unicamp.br (grande.dcc.unicamp.br [143.106.7.8]) by amazonas.dcc.unicamp.br (8.8.5/8.8.5) with ESMTP id XAA22373