Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Subject: Re: Accessing global variables causes segfault From: David Means To: cygwin AT cygwin DOT com In-Reply-To: <000701c2da32$4472f640$3264a8c0@AUSTBMOBILE> References: <000701c2da32$4472f640$3264a8c0 AT AUSTBMOBILE> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-0vBdqA3F2xDWMTVFK4bO" Organization: The-Means.net Message-Id: <1045929492.11418.3.camel@milo> Mime-Version: 1.0 Date: 22 Feb 2003 10:58:12 -0500 --=-0vBdqA3F2xDWMTVFK4bO Content-Type: multipart/alternative; boundary="=-OgMq+WMdemZWKZjm/Gei" --=-OgMq+WMdemZWKZjm/Gei Content-Type: text/plain Content-Transfer-Encoding: quoted-printable One problem is that 'myglobal' is a pointer to an int, but the int is never defined, and hence, you're assigning a value to a pointer that points no where. It's very common for things like this to work on one platform, but not another. On Sat, 2003-02-22 at 00:21, Steve Baldwin wrote: > I'm having some (further) issues porting some Unix code to cygwin. I > have a > scenario where there are global variables defined in a shared library, > and referenced in the executable. See the example below. Yes I know > it's bad coding practice, but I'm hoping to port the code with the least > amount of re-writing as possible. It works fine under Unix, but as you > can see from below, doesn't play well under cygwin. Is there anything > I can do - apart from the obvious re-write. >=20 > Cheers, >=20 > Steve >=20 > [cdev]$ cat a.c > #include > #include > extern void fx (void) ; > extern int myglobal ; >=20 > int > main (int argc, char **argv) { > myglobal =3D 99 ; > fx () ; > } > [cdev]$ cat b.c > #include >=20 > int *myglobal ; >=20 > void > fx (void) > { > printf("here i am : myglobal =3D %d\n", myglobal) ; > } > [cdev]$ gcc b.c -o libb.dll -shared > [cdev]$ gcc a.c -o a -L. -lb > [cdev]$ a > Segmentation fault (core dumped) >=20 >=20 > -- > 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/ --=20 David Means Different all twisty a of in maze are you, passages little. --=-OgMq+WMdemZWKZjm/Gei Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable One problem is that 'myglobal' is a pointer to an int, but the int is never= defined, and hence, you're assigning a value to a pointer that points no w= here.

It's very common for things like this to work on one platform, but not anot= her.

On Sat, 2003-02-22 at 00:21, Steve Baldwin wrote:
I'm having some (further) issues=
 porting some Unix code to cygwin.  I
have a
scenario where there are global variables defined in a shared library,
and referenced in the executable.  See the example below.  Yes I know
it's bad coding practice, but I'm hoping to port the code with the least
amount of re-writing as possible.  It works fine under Unix, but as you
can see from below, doesn't play well under cygwin.  Is there anything
I can do - apart from the obvious re-write.

Cheers,

Steve

[cdev]$ cat a.c
#include <stdio.h>
#include <stdlib.h>
extern void fx (void) ;
extern int myglobal ;

int
main (int argc, char **argv) {
        myglobal =3D 99 ;
        fx () ;
}
[cdev]$ cat b.c
#include <stdio.h>

int             *myglobal ;

void
fx (void)
{
        printf("here i am : myglobal =3D %d\n", myglobal) ;
}
[cdev]$ gcc b.c -o libb.dll -shared
[cdev]$ gcc a.c -o a -L. -lb
[cdev]$ a
Segmentation fault (core dumped)


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html<=
/FONT>
Documentation:         http://cygwin.com/docs.html<=
/FONT>
FAQ:                   http://cygwin.com/faq/=
--=20
David Means

Different all twisty a of in maze are you, passages little.
--=-OgMq+WMdemZWKZjm/Gei-- --=-0vBdqA3F2xDWMTVFK4bO Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iEYEABECAAYFAj5XnhMACgkQUd0KwqAz4aojgQCcDxiyA+chojwiy8YwOcjXgwmx sV4AoIAmhW2qwrNuqPCo8A84Bs9s9lIs =CCse -----END PGP SIGNATURE----- --=-0vBdqA3F2xDWMTVFK4bO--