Hi Max.

I have the same problem on Slackware 14.1 with gcc 4.8.xyz

in Cog/platforms/unix/config/config.h.in if you pre-undefine the variables before autoconf gets to it, it apears  to fix the weirdness.

 /* Author: Ian.Piumarta@squeakland.org
* Last edited: 2006-04-23 12:34:41 by piumarta on emilia.local

/* pre-empty some preprocessor variables used in srv/vm/cogit.h, cointer.h, etc */
# define NoDbgRegParms
# define NeverInline

This enables me to compile without that error; I have tested on all build types for squeak.cog.v3. and for the 'build' build type on squeak.cog.spur.



---- On Tue, 24 Feb 2015 16:10:29 -0500 Max Leske <maxleske@gmail.com> wrote ----
Not sure if this might be helpful but I “fixed” the same problem today so that I could build a vm on debian. The “fix” is (although I don’t completely understand the problem…) to remove the #define for NoDbgRegParms, such that it will be defined as empty (in the second #define).


#if !PRODUCTION && defined(__GNUC__) && !(defined(__MINGW32__) || defined(__MINGW64__)) && !defined(NoDbgRegParms)
# define NoDbgRegParms __attribute__ ((regparm (0)))

#if !defined(NoDbgRegParms)
# define NoDbgRegParms /*empty*/

Here, remove the first #if…#endif.

Although this doesn’t make the issue go away, it might help get a working VM.


On 24 Feb 2015, at 21:50, vm-dev-request@lists.squeakfoundation.org wrote:

---- On Mon, 23 Feb 2015 18:18:38 -0500 tim Rowledge &lt;tim@rowledge.org&gt; wrote ---- 

Last summer I was using a vmware hosted ubuntu 14.0.4 system to build vms for use in making the ARM cog stuff. Last week I tried to get back to that and I simply can’t make a working vm with the latest ~#3600 code. 

The normal vm builds but won’t find the x11 display module - although it does seem to be able to find the null display. Not so terribly helpful though. Obviously the first thing I tried was building a debug vm to see if I could work out what is wrong but that won’t even come close to building. The log is full of exciting things like - 
/mnt/hgfs/tim/Documents/Squeak/Rasbian-VM/Pi-CogVM/Cog/src/vm/gcc3x-cointerp.c:579:13: note: previous declaration of ‘markStackPageMostRecentlyUsed’ was here 
static void markStackPageMostRecentlyUsed(StackPage *page) NoDbgRegParms; 
/mnt/hgfs/tim/Documents/Squeak/Rasbian-VM/Pi-CogVM/Cog/src/vm/gcc3x-cointerp.c:18573:1: error: conflicting types for ‘markStackPageNextMostRecentlyUsed’ 
markStackPageNextMostRecentlyUsed(StackPage *page) 

and later in the log - 
/mnt/hgfs/tim/Documents/Squeak/Rasbian-VM/Pi-CogVM/Cog/src/vm/gcc3x-cointerp.c:579:13: warning: ‘markStackPageMostRecentlyUsed’ used but never defined [enabled by default] 
static void markStackPageMostRecentlyUsed(StackPage *page) NoDbgRegParms; 

To extra check, I tried the stack vm as well; same problems. 

Just to make life really amusing, the Raspbian system builds from the very same files without any problems, both plain and debug. I know it’s the same files because both unix systems mount the directories off my iMac. 

I’m at a loss to see why this is happening. Sure, different compilers with different bugs etc, but really? 

tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim 
Useful random insult:- Ready to check in at the HaHa Hilton.