On Wed, 14 Jul 2010, Frank Shearar wrote: > On 2010/07/13 23:04, Levente Uzonyi wrote: >> On Tue, 13 Jul 2010, Rob Withers wrote: >> >>> Thanks Levente. Unfortunately it did not work: >>> >>> ./lib/squeak/3.9-7/squeak: /lib/libc.so.6: version `GLIBC_2.11' not >>> found (required by ./lib/squeak/3.9-7/squeak) >> >> Seems like you have to build it yourself. Fortunately it's very easy, >> since Eliot commits the generated sources to the svn repo. So you can >> build a CogVM/StackVM without VMMaker. Here is how: >> >> "How to build the Cog Croquet VM on Unix >> ------------------------------- >> 1. Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11 & libxt >> source)) >> 2. Check out the following sources from svn (if you haven't already - if >> you're >> reading this in unixbuild its likely you've already got the sources) >> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms >> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src >> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild >> 3. Open a shell, cd into the unixbuild/bld directory and execute >> ../../platforms/unix/config/configure CFLAGS="-g -O2 -msse2 >> -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 >> -DCOGMTVM=0" LIBS=-lpthread >> make install prefix=WhereYouWantTheVmToGo >> 4. At the end of it you'll get a new VM in the path provided via -prefix" > > Are there any additional requirements like gcc version, for instance? > > I ask because I get errors on the above instructions, on FreeBSD 6.4, running > gcc 3.4.6. I can attach configure's output and whatnot, if you're interested. If configure failed, then please attach the output and continue this thread on the vm-dev list. Levente > > frank > >> Levente >> >>> >>> Rob >>> >>> >>> >>> ________________________________ >>> From: Levente Uzonyi <[hidden email]> >>> To: The general-purpose Squeak developers list >>> <[hidden email]> >>> Sent: Tue, July 13, 2010 3:21:43 PM >>> Subject: Re: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in >>> Squeak 4.1) >>> >>> On Tue, 13 Jul 2010, Rob Withers wrote: >>> >>>> -------------------------------------------------- >>>> From: "Levente Uzonyi" <[hidden email]> >>>> Sent: Tuesday, July 13, 2010 12:46 PM >>>> To: "The general-purpose Squeak developers list" >>>> <[hidden email]> >>>> Subject: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in Squeak >>>> 4.1) >>>> >>>>> On Tue, 13 Jul 2010, Rob Withers wrote: >>>>> >>>>>> >>>>>> -------------------------------------------------- >>>>>> From: "Andreas Raab" <[hidden email]> >>>>>> Sent: Tuesday, July 13, 2010 11:29 AM >>>>>> To: "The general-purpose Squeak developers list" >>>>>> <[hidden email]> >>>>>> Subject: [squeak-dev] Re: UI lockup in Squeak 4.1 >>>>>> >>>>>>> On 7/13/2010 6:39 AM, Rob Withers wrote: >>>>>>>> The low-space watcher is running, at least before the problem >>>>>>>> starts. I >>>>>>>> do eventually run out of memory, but the uninterruptable state >>>>>>>> happens >>>>>>>> before this. >>>>>>> >>>>>>> In which case you want to do the following: >>>>>>> * Launch your app and wait until it's in the "growing state" >>>>>>> * Hit F2 and from the VM's preference menu choose "Debug" and then >>>>>>> "Print all processes" >>>>>>> >>>>>>> This will dump a list of all the call stacks of all processes. One >>>>>>> of them is the culprit consuming memory and you'll probably be >>>>>>> able to tell quickly from just looking at it (if not, you can >>>>>>> email the output here but it typically takes a domain expert to >>>>>>> understand what's going wrong). >>>>>>> >>>>>> >>>>>> Thanks for this pointer, Andreas. >>>>>> >>>>>> This time it was a Cog VM which spasmed, which I use for my client >>>>>> (Squeak 4.1 for server for use with linux vm - I have no ability to >>>>>> compile a linux Cog vm: would love if someone posted one that could >>>>>> be launched headless for my webhost). >>>>> >>>>> Cog works, but i think you're trying to use the -headless switch, >>>>> which (is deprecated) and tells the vm to use the X11 display, but >>>>> with no window. Servers usually don't have X11, so it won't work. >>>>> You better use -vm-display-null (and -vm-sound-null). Try squeak >>>>> --help for further useful options (like tuning Cog). >>>>> >>>> >>>> I am trying to use the -headless switch. Good to know it is >>>> deprecated. So you happen to have a Cog for linux binary (version 17 >>>> - 20), which I could use? >>> >>> I have one, but I'm not sure it will work on your server. You can find >>> it here: http://leves.web.elte.hu/squeak/cog17.tar.gz . It's built on >>> ubuntu 10.04 and is optimized for core2. >>> >>> >>> Levente >>> >>>> >>>> Thanks, >>>> Rob >>>> >>>>> >>>>> Levente >>>>> >>>>>> >>>>>> It started running at 100% and I did your F2 -> Debug Options -> >>>>>> Print all processes. It started dumping a LOT to the Debug Console, >>>>>> then it froze, still at 100%, but no increase in memory now and it >>>>>> went (Not Responding) and greyed out the window. >>>>>> >>>>>> Luckily, I was able to see enough of the stack that was causing >>>>>> problems. It is infinitely looping in this method: >>>>>> >>>>>> LanguageEnvironment class>>#localeID: localeID >>>>>> ^self knownEnvironments at: localeID ifAbsent: [self localeID: >>>>>> (LocaleID isoLanguage: 'en')] >>>>>> >>>>>> This has nothing to do with my code, except I must be calling >>>>>> something that enters this loop. It happens in both Cog (Windows) >>>>>> and Squeak4.1 (Linux <headless> and Windows). >>>>>> >>>>>> Not sure how to fix this. >>>>>> >>>>>> Rob >>>>>> >>>>>>> Cheers, >>>>>>> - Andreas >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >> >> >> > > > |
On 2010/07/14 23:29, Levente Uzonyi wrote: > > On Wed, 14 Jul 2010, Frank Shearar wrote: > >> On 2010/07/13 23:04, Levente Uzonyi wrote: >>> On Tue, 13 Jul 2010, Rob Withers wrote: >>> >>>> Thanks Levente. Unfortunately it did not work: >>>> >>>> ./lib/squeak/3.9-7/squeak: /lib/libc.so.6: version `GLIBC_2.11' not >>>> found (required by ./lib/squeak/3.9-7/squeak) >>> >>> Seems like you have to build it yourself. Fortunately it's very easy, >>> since Eliot commits the generated sources to the svn repo. So you can >>> build a CogVM/StackVM without VMMaker. Here is how: >>> >>> "How to build the Cog Croquet VM on Unix >>> ------------------------------- >>> 1. Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11 & libxt >>> source)) >>> 2. Check out the following sources from svn (if you haven't already - if >>> you're >>> reading this in unixbuild its likely you've already got the sources) >>> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms >>> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src >>> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild >>> 3. Open a shell, cd into the unixbuild/bld directory and execute >>> ../../platforms/unix/config/configure CFLAGS="-g -O2 -msse2 >>> -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 >>> -DCOGMTVM=0" LIBS=-lpthread >>> make install prefix=WhereYouWantTheVmToGo >>> 4. At the end of it you'll get a new VM in the path provided via >>> -prefix" >> >> Are there any additional requirements like gcc version, for instance? >> >> I ask because I get errors on the above instructions, on FreeBSD 6.4, >> running gcc 3.4.6. I can attach configure's output and whatnot, if >> you're interested. > > If configure failed, then please attach the output and continue this > thread on the vm-dev list. having said that, I've attached the output from configure (which looks fine, to my untrained eye) and the output from make install (which generates errors). That first error: In file included from /usr/home/frank/temp/src/vm/gcc3x-cointerp.c:21: /usr/include/malloc.h:3:2: error: #error "<malloc.h> has been replaced by <stdlib.h>" is probably the culprit, I suppose? frank > > > Levente > >> >> frank >> >>> Levente >>> >>>> >>>> Rob >>>> >>>> >>>> >>>> ________________________________ >>>> From: Levente Uzonyi <[hidden email]> >>>> To: The general-purpose Squeak developers list >>>> <[hidden email]> >>>> Sent: Tue, July 13, 2010 3:21:43 PM >>>> Subject: Re: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in >>>> Squeak 4.1) >>>> >>>> On Tue, 13 Jul 2010, Rob Withers wrote: >>>> >>>>> -------------------------------------------------- >>>>> From: "Levente Uzonyi" <[hidden email]> >>>>> Sent: Tuesday, July 13, 2010 12:46 PM >>>>> To: "The general-purpose Squeak developers list" >>>>> <[hidden email]> >>>>> Subject: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in Squeak >>>>> 4.1) >>>>> >>>>>> On Tue, 13 Jul 2010, Rob Withers wrote: >>>>>> >>>>>>> >>>>>>> -------------------------------------------------- >>>>>>> From: "Andreas Raab" <[hidden email]> >>>>>>> Sent: Tuesday, July 13, 2010 11:29 AM >>>>>>> To: "The general-purpose Squeak developers list" >>>>>>> <[hidden email]> >>>>>>> Subject: [squeak-dev] Re: UI lockup in Squeak 4.1 >>>>>>> >>>>>>>> On 7/13/2010 6:39 AM, Rob Withers wrote: >>>>>>>>> The low-space watcher is running, at least before the problem >>>>>>>>> starts. I >>>>>>>>> do eventually run out of memory, but the uninterruptable state >>>>>>>>> happens >>>>>>>>> before this. >>>>>>>> >>>>>>>> In which case you want to do the following: >>>>>>>> * Launch your app and wait until it's in the "growing state" >>>>>>>> * Hit F2 and from the VM's preference menu choose "Debug" and then >>>>>>>> "Print all processes" >>>>>>>> >>>>>>>> This will dump a list of all the call stacks of all processes. One >>>>>>>> of them is the culprit consuming memory and you'll probably be >>>>>>>> able to tell quickly from just looking at it (if not, you can >>>>>>>> email the output here but it typically takes a domain expert to >>>>>>>> understand what's going wrong). >>>>>>>> >>>>>>> >>>>>>> Thanks for this pointer, Andreas. >>>>>>> >>>>>>> This time it was a Cog VM which spasmed, which I use for my client >>>>>>> (Squeak 4.1 for server for use with linux vm - I have no ability to >>>>>>> compile a linux Cog vm: would love if someone posted one that could >>>>>>> be launched headless for my webhost). >>>>>> >>>>>> Cog works, but i think you're trying to use the -headless switch, >>>>>> which (is deprecated) and tells the vm to use the X11 display, but >>>>>> with no window. Servers usually don't have X11, so it won't work. >>>>>> You better use -vm-display-null (and -vm-sound-null). Try squeak >>>>>> --help for further useful options (like tuning Cog). >>>>>> >>>>> >>>>> I am trying to use the -headless switch. Good to know it is >>>>> deprecated. So you happen to have a Cog for linux binary (version 17 >>>>> - 20), which I could use? >>>> >>>> I have one, but I'm not sure it will work on your server. You can find >>>> it here: http://leves.web.elte.hu/squeak/cog17.tar.gz . It's built on >>>> ubuntu 10.04 and is optimized for core2. >>>> >>>> >>>> Levente >>>> >>>>> >>>>> Thanks, >>>>> Rob >>>>> >>>>>> >>>>>> Levente >>>>>> >>>>>>> >>>>>>> It started running at 100% and I did your F2 -> Debug Options -> >>>>>>> Print all processes. It started dumping a LOT to the Debug Console, >>>>>>> then it froze, still at 100%, but no increase in memory now and it >>>>>>> went (Not Responding) and greyed out the window. >>>>>>> >>>>>>> Luckily, I was able to see enough of the stack that was causing >>>>>>> problems. It is infinitely looping in this method: >>>>>>> >>>>>>> LanguageEnvironment class>>#localeID: localeID >>>>>>> ^self knownEnvironments at: localeID ifAbsent: [self localeID: >>>>>>> (LocaleID isoLanguage: 'en')] >>>>>>> >>>>>>> This has nothing to do with my code, except I must be calling >>>>>>> something that enters this loop. It happens in both Cog (Windows) >>>>>>> and Squeak4.1 (Linux <headless> and Windows). >>>>>>> >>>>>>> Not sure how to fix this. >>>>>>> >>>>>>> Rob >>>>>>> >>>>>>>> Cheers, >>>>>>>> - Andreas >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>> >>> >>> >> >> >> > > |
Linux version 2.6.33-5.19.BHsmp ([hidden email]) (gcc version 4.1.2 2008070 4 (Red Hat 4.1.2-48)) I have attached the error from make install... /home1/vawhigso/public_html/squeakelib/Cog/platforms/unix/vm/sqUnixHeartbeat.c:161:3: error: #error "no high res clock defined" Rob -------------------------------------------------- From: "Frank Shearar" <[hidden email]> Sent: Thursday, July 15, 2010 8:30 AM To: <[hidden email]> Subject: Cog on FreeBSD (Re: [Vm-dev] Re: [squeak-dev] Re: Cog on linux) > > On 2010/07/14 23:29, Levente Uzonyi wrote: >> >> On Wed, 14 Jul 2010, Frank Shearar wrote: >> >>> On 2010/07/13 23:04, Levente Uzonyi wrote: >>>> On Tue, 13 Jul 2010, Rob Withers wrote: >>>> >>>>> Thanks Levente. Unfortunately it did not work: >>>>> >>>>> ./lib/squeak/3.9-7/squeak: /lib/libc.so.6: version `GLIBC_2.11' not >>>>> found (required by ./lib/squeak/3.9-7/squeak) >>>> >>>> Seems like you have to build it yourself. Fortunately it's very easy, >>>> since Eliot commits the generated sources to the svn repo. So you can >>>> build a CogVM/StackVM without VMMaker. Here is how: >>>> >>>> "How to build the Cog Croquet VM on Unix >>>> ------------------------------- >>>> 1. Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11 & libxt >>>> source)) >>>> 2. Check out the following sources from svn (if you haven't already - >>>> if >>>> you're >>>> reading this in unixbuild its likely you've already got the sources) >>>> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms >>>> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src >>>> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild >>>> 3. Open a shell, cd into the unixbuild/bld directory and execute >>>> ../../platforms/unix/config/configure CFLAGS="-g -O2 -msse2 >>>> -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 >>>> -DCOGMTVM=0" LIBS=-lpthread >>>> make install prefix=WhereYouWantTheVmToGo >>>> 4. At the end of it you'll get a new VM in the path provided via >>>> -prefix" >>> >>> Are there any additional requirements like gcc version, for instance? >>> >>> I ask because I get errors on the above instructions, on FreeBSD 6.4, >>> running gcc 3.4.6. I can attach configure's output and whatnot, if >>> you're interested. >> >> If configure failed, then please attach the output and continue this >> thread on the vm-dev list. > > I didn't expect the instructions to work, since FreeBSD isn't Linux. So > having said that, I've attached the output from configure (which looks > fine, to my untrained eye) and the output from make install (which > generates errors). > > That first error: > > In file included from /usr/home/frank/temp/src/vm/gcc3x-cointerp.c:21: > /usr/include/malloc.h:3:2: error: #error "<malloc.h> has been replaced > by <stdlib.h>" > > is probably the culprit, I suppose? > > frank > >> >> >> Levente >> >>> >>> frank >>> >>>> Levente >>>> >>>>> >>>>> Rob >>>>> >>>>> >>>>> >>>>> ________________________________ >>>>> From: Levente Uzonyi <[hidden email]> >>>>> To: The general-purpose Squeak developers list >>>>> <[hidden email]> >>>>> Sent: Tue, July 13, 2010 3:21:43 PM >>>>> Subject: Re: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in >>>>> Squeak 4.1) >>>>> >>>>> On Tue, 13 Jul 2010, Rob Withers wrote: >>>>> >>>>>> -------------------------------------------------- >>>>>> From: "Levente Uzonyi" <[hidden email]> >>>>>> Sent: Tuesday, July 13, 2010 12:46 PM >>>>>> To: "The general-purpose Squeak developers list" >>>>>> <[hidden email]> >>>>>> Subject: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in Squeak >>>>>> 4.1) >>>>>> >>>>>>> On Tue, 13 Jul 2010, Rob Withers wrote: >>>>>>> >>>>>>>> >>>>>>>> -------------------------------------------------- >>>>>>>> From: "Andreas Raab" <[hidden email]> >>>>>>>> Sent: Tuesday, July 13, 2010 11:29 AM >>>>>>>> To: "The general-purpose Squeak developers list" >>>>>>>> <[hidden email]> >>>>>>>> Subject: [squeak-dev] Re: UI lockup in Squeak 4.1 >>>>>>>> >>>>>>>>> On 7/13/2010 6:39 AM, Rob Withers wrote: >>>>>>>>>> The low-space watcher is running, at least before the problem >>>>>>>>>> starts. I >>>>>>>>>> do eventually run out of memory, but the uninterruptable state >>>>>>>>>> happens >>>>>>>>>> before this. >>>>>>>>> >>>>>>>>> In which case you want to do the following: >>>>>>>>> * Launch your app and wait until it's in the "growing state" >>>>>>>>> * Hit F2 and from the VM's preference menu choose "Debug" and then >>>>>>>>> "Print all processes" >>>>>>>>> >>>>>>>>> This will dump a list of all the call stacks of all processes. One >>>>>>>>> of them is the culprit consuming memory and you'll probably be >>>>>>>>> able to tell quickly from just looking at it (if not, you can >>>>>>>>> email the output here but it typically takes a domain expert to >>>>>>>>> understand what's going wrong). >>>>>>>>> >>>>>>>> >>>>>>>> Thanks for this pointer, Andreas. >>>>>>>> >>>>>>>> This time it was a Cog VM which spasmed, which I use for my client >>>>>>>> (Squeak 4.1 for server for use with linux vm - I have no ability to >>>>>>>> compile a linux Cog vm: would love if someone posted one that could >>>>>>>> be launched headless for my webhost). >>>>>>> >>>>>>> Cog works, but i think you're trying to use the -headless switch, >>>>>>> which (is deprecated) and tells the vm to use the X11 display, but >>>>>>> with no window. Servers usually don't have X11, so it won't work. >>>>>>> You better use -vm-display-null (and -vm-sound-null). Try squeak >>>>>>> --help for further useful options (like tuning Cog). >>>>>>> >>>>>> >>>>>> I am trying to use the -headless switch. Good to know it is >>>>>> deprecated. So you happen to have a Cog for linux binary (version 17 >>>>>> - 20), which I could use? >>>>> >>>>> I have one, but I'm not sure it will work on your server. You can find >>>>> it here: http://leves.web.elte.hu/squeak/cog17.tar.gz . It's built on >>>>> ubuntu 10.04 and is optimized for core2. >>>>> >>>>> >>>>> Levente >>>>> >>>>>> >>>>>> Thanks, >>>>>> Rob >>>>>> >>>>>>> >>>>>>> Levente >>>>>>> >>>>>>>> >>>>>>>> It started running at 100% and I did your F2 -> Debug Options -> >>>>>>>> Print all processes. It started dumping a LOT to the Debug Console, >>>>>>>> then it froze, still at 100%, but no increase in memory now and it >>>>>>>> went (Not Responding) and greyed out the window. >>>>>>>> >>>>>>>> Luckily, I was able to see enough of the stack that was causing >>>>>>>> problems. It is infinitely looping in this method: >>>>>>>> >>>>>>>> LanguageEnvironment class>>#localeID: localeID >>>>>>>> ^self knownEnvironments at: localeID ifAbsent: [self localeID: >>>>>>>> (LocaleID isoLanguage: 'en')] >>>>>>>> >>>>>>>> This has nothing to do with my code, except I must be calling >>>>>>>> something that enters this loop. It happens in both Cog (Windows) >>>>>>>> and Squeak4.1 (Linux <headless> and Windows). >>>>>>>> >>>>>>>> Not sure how to fix this. >>>>>>>> >>>>>>>> Rob >>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> - Andreas >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>> >>>> >>>> >>> >>> >>> >> >> > > make_install_output.txt (627 bytes) Download Attachment |
In reply to this post by Frank Shearar
On 2010/07/15 14:30, Frank Shearar wrote: > > > > > On 2010/07/14 23:29, Levente Uzonyi wrote: >> >> On Wed, 14 Jul 2010, Frank Shearar wrote: >> >>> On 2010/07/13 23:04, Levente Uzonyi wrote: >>>> On Tue, 13 Jul 2010, Rob Withers wrote: >>>> >>>>> Thanks Levente. Unfortunately it did not work: >>>>> >>>>> ./lib/squeak/3.9-7/squeak: /lib/libc.so.6: version `GLIBC_2.11' not >>>>> found (required by ./lib/squeak/3.9-7/squeak) >>>> >>>> Seems like you have to build it yourself. Fortunately it's very easy, >>>> since Eliot commits the generated sources to the svn repo. So you can >>>> build a CogVM/StackVM without VMMaker. Here is how: >>>> >>>> "How to build the Cog Croquet VM on Unix >>>> ------------------------------- >>>> 1. Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11 & libxt >>>> source)) >>>> 2. Check out the following sources from svn (if you haven't already >>>> - if >>>> you're >>>> reading this in unixbuild its likely you've already got the sources) >>>> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms >>>> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src >>>> svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild >>>> 3. Open a shell, cd into the unixbuild/bld directory and execute >>>> ../../platforms/unix/config/configure CFLAGS="-g -O2 -msse2 >>>> -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 >>>> -DCOGMTVM=0" LIBS=-lpthread >>>> make install prefix=WhereYouWantTheVmToGo >>>> 4. At the end of it you'll get a new VM in the path provided via >>>> -prefix" >>> >>> Are there any additional requirements like gcc version, for instance? >>> >>> I ask because I get errors on the above instructions, on FreeBSD 6.4, >>> running gcc 3.4.6. I can attach configure's output and whatnot, if >>> you're interested. >> >> If configure failed, then please attach the output and continue this >> thread on the vm-dev list. > > I didn't expect the instructions to work, since FreeBSD isn't Linux. So > having said that, I've attached the output from configure (which looks > fine, to my untrained eye) and the output from make install (which > generates errors). > > That first error: > > In file included from /usr/home/frank/temp/src/vm/gcc3x-cointerp.c:21: > /usr/include/malloc.h:3:2: error: #error "<malloc.h> has been replaced > by <stdlib.h>" > > is probably the culprit, I suppose? Yes, maybe I'll learn to hack a bit first. If I manually edit gcc3x-cointerp.c and replace malloc.h with stdlib.h, compilation does indeed proceed much further. Then it fails with this: /usr/home/frank/temp/platforms/unix/vm/sqUnixHeartbeat.c:383: error: 'PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP' undeclared here (not in a function) FreeBSD's pthread.h doesn't contain this #define. In fact, nothing in /usr/include does. I'll investigate further! frank > > frank > >> >> >> Levente >> >>> >>> frank >>> >>>> Levente >>>> >>>>> >>>>> Rob >>>>> >>>>> >>>>> >>>>> ________________________________ >>>>> From: Levente Uzonyi <[hidden email]> >>>>> To: The general-purpose Squeak developers list >>>>> <[hidden email]> >>>>> Sent: Tue, July 13, 2010 3:21:43 PM >>>>> Subject: Re: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in >>>>> Squeak 4.1) >>>>> >>>>> On Tue, 13 Jul 2010, Rob Withers wrote: >>>>> >>>>>> -------------------------------------------------- >>>>>> From: "Levente Uzonyi" <[hidden email]> >>>>>> Sent: Tuesday, July 13, 2010 12:46 PM >>>>>> To: "The general-purpose Squeak developers list" >>>>>> <[hidden email]> >>>>>> Subject: Cog on linux (was: Re: [squeak-dev] Re: UI lockup in Squeak >>>>>> 4.1) >>>>>> >>>>>>> On Tue, 13 Jul 2010, Rob Withers wrote: >>>>>>> >>>>>>>> >>>>>>>> -------------------------------------------------- >>>>>>>> From: "Andreas Raab" <[hidden email]> >>>>>>>> Sent: Tuesday, July 13, 2010 11:29 AM >>>>>>>> To: "The general-purpose Squeak developers list" >>>>>>>> <[hidden email]> >>>>>>>> Subject: [squeak-dev] Re: UI lockup in Squeak 4.1 >>>>>>>> >>>>>>>>> On 7/13/2010 6:39 AM, Rob Withers wrote: >>>>>>>>>> The low-space watcher is running, at least before the problem >>>>>>>>>> starts. I >>>>>>>>>> do eventually run out of memory, but the uninterruptable state >>>>>>>>>> happens >>>>>>>>>> before this. >>>>>>>>> >>>>>>>>> In which case you want to do the following: >>>>>>>>> * Launch your app and wait until it's in the "growing state" >>>>>>>>> * Hit F2 and from the VM's preference menu choose "Debug" and then >>>>>>>>> "Print all processes" >>>>>>>>> >>>>>>>>> This will dump a list of all the call stacks of all processes. One >>>>>>>>> of them is the culprit consuming memory and you'll probably be >>>>>>>>> able to tell quickly from just looking at it (if not, you can >>>>>>>>> email the output here but it typically takes a domain expert to >>>>>>>>> understand what's going wrong). >>>>>>>>> >>>>>>>> >>>>>>>> Thanks for this pointer, Andreas. >>>>>>>> >>>>>>>> This time it was a Cog VM which spasmed, which I use for my client >>>>>>>> (Squeak 4.1 for server for use with linux vm - I have no ability to >>>>>>>> compile a linux Cog vm: would love if someone posted one that could >>>>>>>> be launched headless for my webhost). >>>>>>> >>>>>>> Cog works, but i think you're trying to use the -headless switch, >>>>>>> which (is deprecated) and tells the vm to use the X11 display, but >>>>>>> with no window. Servers usually don't have X11, so it won't work. >>>>>>> You better use -vm-display-null (and -vm-sound-null). Try squeak >>>>>>> --help for further useful options (like tuning Cog). >>>>>>> >>>>>> >>>>>> I am trying to use the -headless switch. Good to know it is >>>>>> deprecated. So you happen to have a Cog for linux binary (version 17 >>>>>> - 20), which I could use? >>>>> >>>>> I have one, but I'm not sure it will work on your server. You can find >>>>> it here: http://leves.web.elte.hu/squeak/cog17.tar.gz . It's built on >>>>> ubuntu 10.04 and is optimized for core2. >>>>> >>>>> >>>>> Levente >>>>> >>>>>> >>>>>> Thanks, >>>>>> Rob >>>>>> >>>>>>> >>>>>>> Levente >>>>>>> >>>>>>>> >>>>>>>> It started running at 100% and I did your F2 -> Debug Options -> >>>>>>>> Print all processes. It started dumping a LOT to the Debug Console, >>>>>>>> then it froze, still at 100%, but no increase in memory now and it >>>>>>>> went (Not Responding) and greyed out the window. >>>>>>>> >>>>>>>> Luckily, I was able to see enough of the stack that was causing >>>>>>>> problems. It is infinitely looping in this method: >>>>>>>> >>>>>>>> LanguageEnvironment class>>#localeID: localeID >>>>>>>> ^self knownEnvironments at: localeID ifAbsent: [self localeID: >>>>>>>> (LocaleID isoLanguage: 'en')] >>>>>>>> >>>>>>>> This has nothing to do with my code, except I must be calling >>>>>>>> something that enters this loop. It happens in both Cog (Windows) >>>>>>>> and Squeak4.1 (Linux <headless> and Windows). >>>>>>>> >>>>>>>> Not sure how to fix this. >>>>>>>> >>>>>>>> Rob >>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> - Andreas >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>> >>>> >>>> >>> >>> >>> >> >> > |
>>>>> "Frank" == Frank Shearar <[hidden email]> writes: Frank> /usr/home/frank/temp/platforms/unix/vm/sqUnixHeartbeat.c:383: error: Frank> PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP' undeclared here (not in a function) Frank> FreeBSD's pthread.h doesn't contain this #define. In fact, nothing in Frank> /usr/include does. I'll investigate further! Ewww. Why do people presume everything's Linux like that? I've seen some tun/tap code like that too. Yup, tun/tap have been ported everywhere (even works on my OSX box), but then people use Linux'isms on top of that, and I can't use it (yes, I'm looking at you, "socat"). -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <[hidden email]> <URL:http://www.stonehenge.com/merlyn/> Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc. See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion |
2010/7/15 Randal L. Schwartz <[hidden email]>
Because Smalltalkers are happy to be immune to this kind of detail behind their vm? Because documentations about standards are not that cheap for unpaid people? Because there is not enough manpower and such community project has to work by gradual error/correction cycles rather than planned development? Nicolas I've seen some tun/tap code like that too. Yup, tun/tap have been |
In reply to this post by Rob Withers
On Thu, Jul 15, 2010 at 5:57 AM, Rob Withers <[hidden email]> wrote:
If you look at the code the error is pointing you at:
#if defined(__GNUC__) && ( defined(i386) || defined(__i386) || defined(__i386__) \ || defined(i486) || defined(__i486) || defined (__i486__) \
|| defined(intel) || defined(x86) || defined(i86pc) ) __asm__ __volatile__ ("rdtsc" : "=A"(value));
#else # error "no high res clock defined"
#endif you'll see the system expects an x86. Are you on an x86-64? If so you need to specify something like -m32 in the CFLAGS and/or supply a flag with te same semantics to configure.
HTH Eliot
|
Eliot,
I am on 8 of these puppies. I'll try -m32 in
the CFLAGS and let you know....after my doc appt. Rob
processor :
7
vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Xeon(R) CPU E5335 @ 2.00GHz stepping : 7 cpu MHz : 2000.252 cache size : 4096 KB physical id : 1 siblings : 4 core id : 3 cpu cores : 4 apicid : 7 initial apicid : 7 fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow bogomips : 3999.45 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: From: [hidden email]
Sent: Thursday, July 15, 2010 2:52 PM
To: [hidden email]
Subject: Re: [Vm-dev] Cog on linux
On Thu, Jul 15, 2010 at 5:57 AM, Rob Withers <[hidden email]> wrote:
If you look at the code the error is pointing you at:
#if
defined(__GNUC__) && ( defined(i386) || defined(__i386) ||
defined(__i386__) \
|| defined(i486) || defined(__i486) || defined (__i486__) \
|| defined(intel) || defined(x86) || defined(i86pc) )
__asm__ __volatile__
("rdtsc" : "=A"(value));
#else
# error "no
high res clock defined"
#endif
you'll see the system expects an x86. Are you on an x86-64? If
so you need to specify something like -m32 in the CFLAGS and/or supply a flag
with te same semantics to configure.
HTH
Eliot
|
On Thu, Jul 15, 2010 at 12:03 PM, Rob Withers <[hidden email]> wrote:
you'll also want -m32 in all link commands.
|
In reply to this post by Nicolas Cellier
On 7/15/2010 11:09 AM, Nicolas Cellier wrote: > 2010/7/15 Randal L. Schwartz <[hidden email] > <mailto:[hidden email]>> > >>>>> "Frank" == Frank Shearar <[hidden email] > <mailto:[hidden email]>> writes: > > Frank> /usr/home/frank/temp/platforms/unix/vm/sqUnixHeartbeat.c:383: > error: > Frank> PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP' undeclared here (not > in a function) > > Frank> FreeBSD's pthread.h doesn't contain this #define. In fact, > nothing in > Frank> /usr/include does. I'll investigate further! > > Ewww. Why do people presume everything's Linux like that? > > > Because Smalltalkers are happy to be immune to this kind of detail > behind their vm? > Because documentations about standards are not that cheap for unpaid people? > Because there is not enough manpower and such community project has to > work by gradual error/correction cycles rather than planned development? [x] None of the above. Correct answer: Because all of the servers at Teleplace run on RHEL 5.3 and that's the only thing we've tested Cog on. You should expect more Linuxisms (and even RHELisms) as people try to compile run Cog on other Unixens. That's the expected state at this stage of the project. Cheers, - Andreas |
In reply to this post by Frank Shearar
Hi Frank, On Thu, Jul 15, 2010 at 6:18 AM, Frank Shearar <[hidden email]> wrote:
Then the code needs to read something like
StackInterpreter>>declareCVarsIn: aCCodeGenerator aCCodeGenerator addHeaderFile:'#if _MSC_VER\# include <malloc.h> /* for alloca under MSVC */\#else\# include <stdlib.h>\#endif' withCRs;
Anyone with info on what's the right header file for alloca under MSVC versions please speak up. Then it fails with this: So the code needs to read something like #if defined(PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP) # define THE_MUTEX_INITIALIZER PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP #else # define THE_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
#endif static pthread_mutex_t yield_sync = THE_MUTEX_INITIALIZER; static pthread_mutex_t yield_mutex = THE_MUTEX_INITIALIZER; It is only by trying to compile on various systems that we discover how they vary. Its not a matter of using linuxisms or not. Its a matter of wanting debuggability and only having linux and Mac OS X available. Its all fixable. Don't take it personally :)
HTH Eliot
|
In reply to this post by Rob Withers
On Thu, 15 Jul 2010, Rob Withers wrote: (Pine is unable to quote your mail...) The question is: is your OS 32 or 64-bit? The CPU doesn't matter here. If your OS is 64-bit then you'll probably need the gcc-multilibs package (or equivalent for your platform) and as Eliot suggested the -m32 switch for compilation and linking. To run the resulting VM, you'll need the ia32-libs package (or equivalent for your platform), but you already have that if you can run the prebuilt SqueakVM. Levente |
Hi Levente, can you edit unixbuild/HowToBuild with this info? Err on the expansive side and feel free to include a good URL if you know of one. TIA
On Thu, Jul 15, 2010 at 12:38 PM, Levente Uzonyi <[hidden email]> wrote:
|
In reply to this post by Andreas.Raab
2010/7/15 Andreas Raab <[hidden email]>
Hehe, I was not speculating on Teleplace policy ! 1) was a joke 2) was applicable for indivuduals rather than Teleplace and 3) I was more an invitation to enhance the code by ourselves now that it is in our hands Nicolas |
On 7/15/2010 12:50 PM, Nicolas Cellier wrote: > Hehe, I was not speculating on Teleplace policy ! I didn't think you were. But since people were effectively asking the question about "gee, why doesn't this compile out of the box on all the flavors that a regular Squeak VM compiles on" I thought it worthwhile to point out what the reality of the current situation is and that people should really expect these issues at this point. It's a normal part of the process. Cheers, - Andreas > 1) was a joke > 2) was applicable for indivuduals rather than Teleplace > and 3) I was more an invitation to enhance the code by ourselves now > that it is in our hands > > Nicolas |
>>>>> "Andreas" == Andreas Raab <[hidden email]> writes: Andreas> I didn't think you were. But since people were effectively Andreas> asking the question about "gee, why doesn't this compile out of Andreas> the box on all the flavors that a regular Squeak VM compiles Andreas> on" I thought it worthwhile to point out what the reality of Andreas> the current situation is and that people should really expect Andreas> these issues at this point. It's a normal part of the process. I wasn't asking that directly. Just more lamenting the fact that a *lot* of software is written with the theory that "all the Unix world is Linux", even though Linux is a tiny minority of Unix-like installations out there. -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <[hidden email]> <URL:http://www.stonehenge.com/merlyn/> Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc. See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion |
In reply to this post by Levente Uzonyi-2
(I am having trouble quoting Eliot's email as well. Plain text is best) I finally figured out how to specify to configure to use -m32 on the CFLAGS entries. It is a part of the invocation of configure. ../../platforms/unix/config/configure CFLAGS="-m32 -g -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0" LIBS=-lpthread I seem to have gotten past the problem with sqUnixHeartbeat.c and now I have a new problem: vm/vm.a(sqExternalSemaphores.o): In function `doSignalExternalSemaphores': /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:198: undefined reference to `sqLowLevelMFence' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:213: undefined reference to `sqLowLevelMFence' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:184: undefined reference to `sqLowLevelMFence' vm/vm.a(sqExternalSemaphores.o): In function `signalSemaphoreWithIndex': /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:130: undefined reference to `sqLowLevelMFence' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:131: undefined reference to `sqAtomicAddConst' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:147: undefined reference to `sqLowLevelMFence' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:148: undefined reference to `sqCompareAndSwap' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:152: undefined reference to `sqLowLevelMFence' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:153: undefined reference to `sqCompareAndSwap' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:135: undefined reference to `sqLowLevelMFence' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:136: undefined reference to `sqCompareAndSwap' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:140: undefined reference to `sqLowLevelMFence' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:141: undefined reference to `sqCompareAndSwap' vm/vm.a(sqTicker.o): In function `checkHighPriorityTickees': /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:211: undefined reference to `sqLowLevelMFence' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:217: undefined reference to `sqCompareAndSwapRes' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:227: undefined reference to `sqLowLevelMFence' vm/vm.a(sqTicker.o): In function `addHighPriorityTickee': /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:185: undefined reference to `sqLowLevelMFence' vm/vm.a(sqTicker.o): In function `ioSynchronousCheckForEvents': /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:128: undefined reference to `sqLowLevelMFence' vm/vm.a(sqTicker.o): In function `addHighPriorityTickee': /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:193: undefined reference to `sqLowLevelMFence' /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqTicker.c:193: undefined reference to `sqLowLevelMFence' collect2: ld returned 1 exit status make: *** [squeak] Error 1 -------------------------------------------------- From: "Levente Uzonyi" <[hidden email]> Sent: Thursday, July 15, 2010 3:38 PM To: "Squeak Virtual Machine Development Discussion" <[hidden email]> Subject: Re: [Vm-dev] Cog on linux > > On Thu, 15 Jul 2010, Rob Withers wrote: > > (Pine is unable to quote your mail...) > > The question is: is your OS 32 or 64-bit? The CPU doesn't matter here. If > your OS is 64-bit then you'll probably need the gcc-multilibs package (or > equivalent for your platform) and as Eliot suggested the -m32 switch for > compilation and linking. To run the resulting VM, you'll need the > ia32-libs package (or equivalent for your platform), but you already have > that if you can run the prebuilt SqueakVM. > > > Levente |
On Thu, Jul 15, 2010 at 2:54 PM, Rob Withers <[hidden email]> wrote:
OK.
gcc -E -dM should print predefined macros. e.g.
McStalker.oscogvm$ gcc -m32 -E -dM platforms/Cross/vm/sqMemoryFence.h | egrep "86|GNUC" #define __GNUC__ 4 #define __DBL_MAX__ 1.7976931348623157e+308
#define __i386 1 #define i386 1 #define __i386__ 1 #define __GNUC_PATCHLEVEL__ 1 #define __GNUC_MINOR__ 2 #define __GNUC_GNU_INLINE__ 1 McStalker.oscogvm$ gcc -m64 -E -dM platforms/Cross/vm/sqMemoryFence.h | egrep "86|GNUC"
#define __GNUC__ 4 #define __DBL_MAX__ 1.7976931348623157e+308 #define __x86_64 1 #define __x86_64__ 1 #define __GNUC_PATCHLEVEL__ 1 #define __GNUC_MINOR__ 2
#define __GNUC_GNU_INLINE__ 1 You'll then see what names are given to define x86/IA32 on your system. You can then edit the following incantation to include your configuration (and let me know what it is).
#if defined(__GNUC__) && (defined(i386) || defined(__i386) || defined(__i386__) || defined(_X86_)) HTH Eliot /home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:213: undefined reference to `sqLowLevelMFence' |
I get the following:
[hidden email]
[~/public_html/squeakelib/Cog]# gcc -m32 -E -dM
platforms/Cross/vm/sqMemoryFence.h | egrep "86|GNUC"
#define __GNUC_PATCHLEVEL__ 2 #define __GNUC__ 4 #define __DBL_MAX__ 1.7976931348623157e+308 #define __i386 1 #define i386 1 #define __i386__ 1 #define __GNUC_RH_RELEASE__ 48 #define __GNUC_MINOR__ 1 #define __GNUC_GNU_INLINE__ 1 [hidden email]
[~/public_html/squeakelib/Cog]# gcc -m64 -E -dM
platforms/Cross/vm/sqMemoryFence.h | egrep "86|GNUC"
#define __GNUC__ 4 #define __DBL_MAX__ 1.7976931348623157e+308 #define __x86_64 1 #define __GNUC_RH_RELEASE__ 48 #define __x86_64__ 1 #define __GNUC_PATCHLEVEL__ 2 #define __GNUC_MINOR__ 1 #define __GNUC_GNU_INLINE__ 1 It looks like I match the incantation, as both 32
and 64. Not sure what to change.
Rob
From: [hidden email]
Sent: Thursday, July 15, 2010 6:27 PM
To: [hidden email]
Subject: Re: [Vm-dev] Cog on linux
On Thu, Jul 15, 2010 at 2:54 PM, Rob Withers <[hidden email]> wrote:
OK.
gcc -E -dM should print predefined macros. e.g.
McStalker.oscogvm$ gcc -m32 -E -dM platforms/Cross/vm/sqMemoryFence.h |
egrep "86|GNUC"
#define __GNUC__ 4
#define __DBL_MAX__ 1.7976931348623157e+308
#define __i386 1
#define i386 1
#define __i386__ 1
#define __GNUC_PATCHLEVEL__ 1
#define __GNUC_MINOR__ 2
#define __GNUC_GNU_INLINE__ 1
McStalker.oscogvm$ gcc -m64 -E -dM platforms/Cross/vm/sqMemoryFence.h |
egrep "86|GNUC"
#define __GNUC__ 4
#define __DBL_MAX__ 1.7976931348623157e+308
#define __x86_64 1
#define __x86_64__ 1
#define __GNUC_PATCHLEVEL__ 1
#define __GNUC_MINOR__ 2
#define __GNUC_GNU_INLINE__ 1 You'll then see what names are given to define x86/IA32 on your system.
You can then edit the following incantation to include your configuration
(and let me know what it is).
#if defined(__GNUC__) && (defined(i386) || defined(__i386) ||
defined(__i386__) || defined(_X86_))
HTH
Eliot
/home1/vawhigso/public_html/squeakelib/Cog/platforms/Cross/vm/sqExternalSemaphores.c:213: undefined reference to `sqLowLevelMFence' |
On Thu, Jul 15, 2010 at 4:49 PM, Rob Withers <[hidden email]> wrote:
You need to figure out why, when sqMemoryFence.h is included by sqExternalSemaphores.c and sqTicker.c, the following macro in sqMemoryFence.h is not being defined or not being expanded:
#if defined(__GNUC__) && (defined(i386) || defined(__i386) || defined(__i386__) || defined(_X86_)) # if defined(__MINGW32__) && !__SSE2__ /* Andreas is fond of the gcc 2.95 MINGW but it lacks sse2 support */
# define sqLowLevelMFence() asm volatile (".byte 0x0f;.byte 0xae;.byte 0xf0") # else # define sqLowLevelMFence() asm volatile ("mfence") # endif #else
# if !defined(sqLowLevelMFence) extern void sqLowLevelMFence(void); # endif #endif i.e. from the above # define sqLowLevelMFence() asm volatile ("mfence")
should be live and hence in sqExternalSemaphores.c and sqTicker.c sqLowLevelMFence() should expand to asm volatile ("mfence"). gcc -E or gcc -P will run the preprocessor, so run the make capturing the compile commands for these two and retry the command deleting -c thefile and adding -E. Then look at the output and see what files are included (is sqMemoryFence.h being included?) and then if it is find out why, if as the -dM output above indicates, the macro isn't being defined given the above tests for both __GNUC__ and __i386__.
HTH Eliot
|
Free forum by Nabble | Edit this page |