delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/12/30/15:10:32

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <3E10A7AE.20405@ece.gatech.edu>
Date: Mon, 30 Dec 2002 15:08:14 -0500
From: Charles Wilson <cwilson AT ece DOT gatech DOT edu>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.1) Gecko/20020823 Netscape/7.0
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
CC: kumarchi AT attbi DOT com
Subject: Re: trying to complibe glib 2.0.7
References: <E18PoeB-0000fC-00 AT quimby DOT gnus DOT org> <3E05BD05 DOT 5090408 AT ece DOT gatech DOT edu> <3E0DDE19 DOT 1060903 AT ece DOT gatech DOT edu>

--------------090808010304070205090709
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Success with glib-2.0.7.  Just 8 days after the glib folks released the 
new stable version, glib-2.2.0.  Sigh.

Anyway, here's the scoop for glib-2.0.7.  First, you need 
libtool-devel-20021227-1.  (Then you have to hack it, because there is 
one tiny pre-existing bug that I didn't fix; I'll release a new version 
of libtool-devel that includes the fix later.)

Then, you need to patch glib-2.0.7, and reautotoolize the whole thing, 
using the handy bootstrap script included in the patch.

Then, configure, make.  It passes all tests but one, and I *think* that 
one is actually a bug in cygwin's malloc routine.  But I am NOT sure 
about that.

Anyway, this email has two attachments:

glib-2.0.7.NOTES === build instructions and requirements, including
   what you need to do to your installed libtool.  Also, a short semi-
   analysis of the string-test.exe failure.

glib-2.0.7.patch.gz == the patch, gzip'ed for size.  (does NOT include
   the changes that reautotoolizing will introduce; THAT would be
   1.8MB uncompressed)

There are a number of places where I blithely replaced G_PLATFORM_WIN32 
with G_OS_WIN32 (thus skipping various win32-isms on cygwin, and using 
the unix-isms instead).  I tried to only do this where it made sense -- 
and I kept some win32-isms.  However, it is entirely possible that SOME 
of the win32-isms that I killed in the cygwin build are actually needed, 
especially as it relates to g_convert_filename functions dealing with 
internationalization.

In general, the patches are based on Steven O'Brien's changes for 
glib-1.2.10, as well as some earlier work I had done.  And the port owes 
a lot to Tor Lilqvist's work with glib+mingw/MSVC.

I don't intend to package glib for cygwin, or to support it.  I just 
viewed it as an interesting application/testcase for libtool.  If anyone 
wants to take these patches and use them to provide cygwin-glib 
package(s), I wouldn't mind -- but be warned, the packaging will be 
tricky, since the import libs and headers are versioned, as well as the 
dll.  See Nicholas Wourm's packaging structure for
   db2
   libdb2
   libdb2-devel
   db3.1
   libdb3.1
   libdb3.1-devel
You'd probably want to do something like
   glib20       (everything else)
   glib20-devel (includes, import libs)
   glib20-docs  (html docs)
   libglib20_0  (contains the dll)

I *may* update these patches to apply to glib-2.2.0, but no promises. 
I've been informed, however, that glib-2.2.0 requires pkgconfig-0.14. 
cygwin ships 0.12.  Gee, I hope the maintainer releases an updated 
version of pkgconfig for cygwin...oh yeah, that's me.  Sigh.

--Chuck

--------------090808010304070205090709
Content-Type: text/plain;
 name="glib-2.0.7.NOTES"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="glib-2.0.7.NOTES"

build requirements:
==================================

libtool
libtool-devel	20021227-1 or newer (*)
autoconf
autoconf-devel	2.57-1 or newer
automake
automake-devel	1.7.2-1 or newer
gcc		3.2-3 or newer
binutils	20021117-1 or newer
libiconv	1.8-2
libiconv2	1.8-2
libintl2	0.11.5-1
gettext		0.11.5-1            
gettext-devel	0.11.5-1            

(*) if using 20021227-1, you need to apply the following patch to
/usr/autotools/devel/share/aclocal/libtool.m4 BEFORE running bootstrap,
below.  I'll release a new libtool that includes this fix soon.

--- libtool.m4.orig   2002-12-30 00:16:43.000000000 -0500
+++ libtool.m4        2002-12-30 00:16:56.000000000 -0500
@@ -2342,7 +2342,7 @@
 # --------------
 # enable support for Windows resource files
 AC_DEFUN([AC_LIBTOOL_RC],
-[AC_REQUIRE([AC_PROG_RC])
+[AC_REQUIRE([LT_AC_PROG_RC])
 _LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,RC" | sed 's/^,//'`])
 ])# AC_LIBTOOL_RC


build instructions:
==================================

1) unpack glib-2.0.7.tar.bz2
2) cd glib-2.0.7
3) patch -p1 < <path to>/glib-2.0.7.patch
4) chmod +x ./bootstrap
5) ./bootstrap
6) mkdir .build && cd .build
7) CFLAGS=-g ../configure --prefix=/usr/local --srcdir=<path to>/glib-2.0.7 --enable-maintainer-mode
8) make


test results:
==================================

string-test: FAIL
dies in this test:

  g_string_sprintf (string2, "%s|%0100d|%s|%s|%0*d|%*.*f|%100.100f",
          "this pete guy sure is a wuss, like he's the number ",
          1,
          " wuss.  everyone agrees.\n",
          string1->str,
          10, 666, 15, 15, 666.666666666, 666.666666666);

death occurs in 
  g_string_printf
  g_string_append_printf_internal
  g_strdup_vprintf
  g_new (gchar, g_printf_string_upper_bound(format,args1))
    where second arg evaulates to 10324
    g_new is #defined as 
    #define g_new(struct_type, n_structs)           \
      ((struct_type *) g_malloc (((gsize) sizeof (struct_type)) * ((gsize) (n_structs))))
    so this call is ACTUALLY
    (char *) g_malloc ( (sizeof (char)) * 10324 ) 

  in g_malloc, we die at this line:
  mem = glib_mem_vtable.malloc ( nbytes ) 
    where nbytes is 10324
    glib_mem_vtable.malloc = 0x10063b20 <malloc>
death is a SIGSEGV, and it must occur in malloc, and it corrupts the stack.

Haven't investigated this further, because you need a debuggable kernel and I
don't have time to build one right now.


--------------090808010304070205090709
Content-Type: application/x-gzip;
 name="glib-2.0.7.patch.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="glib-2.0.7.patch.gz"

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
91q7txEBAA==

--------------090808010304070205090709
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
--------------090808010304070205090709--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019