discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Problems with Objc Runtime and Foundation Classes


From: Adam Fedor
Subject: Re: Problems with Objc Runtime and Foundation Classes
Date: Wed, 18 Jun 2003 11:25:03 -0600

Maybe you could look in the config.log file to see why the malloc test failed:

Sources/ffcal/trampoline/config.log

If there's nothing obvious, perhaps force CODE_EXECUTABLE to be defined as 1 (ffcall/trampoline/config.h) and recompile ffcall. Be sure to also run 'make check' to see if it was really ok.


On Wednesday, June 18, 2003, at 11:05 AM, S.B., Vaitheeswaran wrote:

So, whats the fix ? do u have the intaller software and installation
scripts.

Vaithee

-----Original Message-----
From: Tom Koelman [mailto:tkoelman@xs4all.nl]
Sent: Wednesday, June 18, 2003 12:30 AM
Cc: S.B., Vaitheeswaran; Adam Fedor
Subject: Re: Problems with Objc Runtime and Foundation Classes


The following message is a courtesy copy of an article
that has been posted to gmane.comp.lib.gnustep.general as well.

"S.B., Vaitheeswaran" <vaitheeswaran.s.b@attws.com> writes:

I am trying to use the windows intaller version of GNUStep and getting
into trouble. Please find attached the file installer.tar.bz2 file to
this email and help me.

Checking the logs, the first suspicious difference I find is

checking whether code in malloc'ed memory is executable... yes

which on my (Windows 2000) machines gives "no". I don't know what it
means, though on your machine I think this should result in
$cl_cv_codeexec being "yes" in the configure script and consequently
CODE_EXECUTABLE set to 1 in confdefs.h. This would, I'd expect, result
in a config.h containing #define CODE_EXECUTABLE 1 as well. Here I
start getting confused, because on my system, where the
malloc-mem-exec-test fails, config.h make CODE_EXECUTABLE 1. Hmm.

The actual thing that goes wrong in your logs is compiling
trampoline/trampoline.c in the ffcall project:

trampoline.c:85: parse error before '?' token

This the line containing two question marks in the following code
block:

#ifndef CODE_EXECUTABLE
  /* How do we make the trampoline's code executable? */
  #if defined(HAVE_MACH_VM) || defined(__convex__) ||
defined(HAVE_WORKING_MPROTECT) || defined(HAVE_SYS_M88KBCS_H)
  /* mprotect() [or equivalent] the malloc'ed area. */
    #define EXECUTABLE_VIA_MPROTECT
  #else
    #ifdef HAVE_MMAP
      /* Use an mmap'ed page. */
      #define EXECUTABLE_VIA_MMAP
      #ifdef HAVE_MMAP_ANONYMOUS
        /* Use mmap with the MAP_ANONYMOUS or MAP_ANON flag. */
        #define EXECUTABLE_VIA_MMAP_ANONYMOUS
      #else
        /* Use mmap on /dev/zero. */
        #define EXECUTABLE_VIA_MMAP_DEVZERO
      #endif
    #else
      #ifdef HAVE_SHM
        /* Use an shmat'ed page. */
        #define EXECUTABLE_VIA_SHM
      #else
      ??
      #endif
    #endif
  #endif
#endif

This indicates that for some reason your CODE_EXECUTABLE is not
defined, otherwise it would never get to line 85.

So having executable malloc memory causes compiling ffcall to fail,
which is a fatal error. Adam, do you know what the significance of
this test is?

Tom






reply via email to

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