Are you using clang+libobjc2? The old gnu runtime has this problem. On Friday, October 31, 2014, Amr Aboelela <amraboel...@gmail.com> wrote:
> Hi, > > I am getting this error: > > WARNING your program is becoming multi-threaded, but you are using an > ObjectiveC runtime library which does not have a thread-safe implementation > of the +initialize method. Please see README.initialize for more > information. > > > Everytime I run an Objective-C process, of myOS project: > https://github.com/amraboelela/myos.android.frameworks > > Any help is appreciated > > > > On Sat, Mar 17, 2012 at 1:08 PM, Ivan Vučica <ivuc...@gmail.com > <javascript:_e(%7B%7D,'cvml','ivuc...@gmail.com');>> wrote: > >> So I've been playing with compiling GNUstep for Android a little this >> evening. I'd love David's input, since reflecting back on his status report >> for a WebOS port, he mentioned he worked on solving the precise problem I'm >> having ('configure' not running test programs when cross-compiling). >> >> My setup: >> 0. OS X Lion >> 1. Installed Android SDK into /Applications/android-sdk-mac_x86 >> 2. Installed android-ndk-r5c >> into /Applications/android-sdk-mac_x86/android-ndk-r5c >> 3. Installed an Objective-C-supporting toolchain >> into /Applications/android-sdk-mac_x86/ndk-objc - January 2010 download >> from: >> http://code.google.com/p/android-gcc-objc2-0/downloads/list >> 4. Wrote the following script, intended to be placed into .../core/make >> and .../core/base >> >> #!/bin/bash >> >> export SDK=/Applications/android-sdk-mac_x86 >> >> export NDK=${SDK}/android-ndk-r5c >> >> export NDKCC= >> "${SDK}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86" >> >> export NDKOBJC=${SDK}/ndk-objc/usr/local/android >> >> export SYSROOT=${NDK}/platforms/android-5/arch-arm/ >> >> >> export PATH="${SDK}/tools:${PATH}" >> >> export PATH="${SDK}/platform-tools:${PATH}" >> >> export PATH="${NDK}:${PATH}" >> >> export PATH="${NDKCC}/bin:${PATH}" >> >> export PATH="${NDKOBJC}/bin:${PATH}" >> >> # The most preferred binaries are from ObjC NDK, so it comes last in >> order to be added to first place on the PATH. >> >> >> #NDKCC: >> >> #export DROID_TARGET=arm-linux-androideabi >> >> #NDKOBJC: >> >> export DROID_TARGET=arm-eabi >> >> >> export CC=${DROID_TARGET}-gcc >> >> export CXX=${DROID_TARGET}-g++ >> >> export CPP=${DROID_TARGET}-cpp >> >> export AS=${DROID_TARGET}-as >> >> >> export CPPFLAGS="-I${SYSROOT}/usr/include" >> >> export CFLAGS="-nostdlib ${CPPFLAGS} >> -specs=/tmp/android-gnustep-gcc-spec" >> >> export OBJCFLAGS="${CFLAGS} -I${NDKOBJC}/include" >> >> export LDFLAGS=" " >> >> #export DROID_TARGET=arm-linux-androideabi >> >> >> export ac_cv_c_bigendian=no >> >> >> echo '*invoke_as:' > /tmp/android-gnustep-gcc-spec >> >> echo '%{!S:-o %|.s | '"${DROID_TARGET}"'-as %(asm_options) %m.s %A }' >> >> /tmp/android-gnustep-gcc-spec >> >> >> >> ./configure --host=i686-apple-darwin --target=${DROID_TARGET} >> --prefix=${HOME}/gnustep-android exceptions=no >> >> >> Note the extremely hackish way of overriding "*invoke_as" spec in GCC >> downloaded as a part of that "January 2010" download from >> the android-gcc-objc2-0 project on Google Code. >> >> >> Build process. >> >> 1. In .../core/make, opened "configure" in vim to remove all attempts to >> link with pthread (unnecessary under Android): >> >> vim configure >> :%s/-pthread//g >> :%s/-lpthread//g >> :wq >> >> 2. In .../core/make, ran: >> >> ./android.sh && make && make install >> >> resulting in a gnustep-make installation in ~/gnustep-android >> >> 3. Sourced GNUstep.sh: >> >> . ~/gnustep-android/Library/GNUstep/Makefiles/GNUstep.sh >> >> 4. In .../core/base, opened "configure" in vim to remove all attempts to >> link with pthread (unnecessary under Android): >> >> vim configure >> :%s/-pthread//g >> :%s/-lpthread//g >> :wq >> >> 5. In .../core/base, ran: >> >> ./android.sh >> >> And this is where I'm stuck. pthread tests seem to pass ok, but tests >> having to do with objc exceptions seem to cause a failure since I'm cross >> compiling here, and there is a test program that needs to be run. >> >> checking size of pthread_mutex_t... 4 >> checking size of pthread_cond_t... 4 >> checking alignment of pthread_mutex_t... 4 >> checking alignment of pthread_cond_t... 4 >> checking for thread_create in ... yes >> checking for sched_yield in -lrt... no >> checking for nanosleep... yes >> checking for usleep... no >> checking for Sleep... yes >> checking whether objc really works... yes >> checking if +load method is executed before main... no >> checking for objc_sync_enter... yes >> checking for objc_setProperty... yes >> checking for _Block_copy... yes >> checking for objc_setUncaughtExceptionHandler() in runtime... no >> checking for objc_set_unexpected() in runtime... no >> checking for _objc_unexpected_exception in runtime... configure: error: >> in `/Users/ivucica/projects/THIRDPARTY/gnustep/core/base': >> configure: error: cannot run test program while cross compiling >> See `config.log' for more details >> >> >> >> David, in the previous mail from a few months ago, in a different thread, >> you mentioned you had removed all tests that ran test programs from >> 'configure' when cross-compiling is detected. Did you commit these changes >> to 'configure.ac' and 'configure'? If so, how do I use them? >> >> Did you manage to run base on WebOS? >> >> Everyone, there is also a TODO that tests for exceptions should not be >> run when option 'exceptions=no' is set. >> >> Just to note, I'm aware that some of the hacky changes I've made above >> should actually be done in 'configure.ac' and should depend on a new >> target OS called 'android'. I don't have autotools on the Mac, so it was >> easier to directly edit 'configure'. >> >> I'd really love to get GNUstep's base running. >> >> On Sat, Dec 10, 2011 at 19:03, Ivan Vučica <ivuc...@gmail.com >> <javascript:_e(%7B%7D,'cvml','ivuc...@gmail.com');>> wrote: >> >>> Looks like in replying to your email directed to me I forgot to CC the >>> list. >>> >>> On Sat, Dec 10, 2011 at 16:24, Jackie Gleason <jackieglea...@gmail.com >>> <javascript:_e(%7B%7D,'cvml','jackieglea...@gmail.com');>> wrote: >>> >>>> The problem with the lpthread join is that Android has no lpthread, it >>>> is actually integrated into libc so for Android this would need to be >>>> an optional param. >>>> >>> >>> True! I'd say something along the lines of "--enable-integrated-pthread" >>> which would just avoid passing -lpthread. >>> >>> There is a gcc option "-pthread": I would not be surprised if it >>> automagically did the "right thing" on Bionic platforms. >>> >>> >>>> >>>> I have started work on an Android make file instead, however, I am >>>> getting the following... >>>> >>>> >>>> /home/jackie/Development/Code/GnuStep/core/base/Headers/Foundation/NSException.h:44:2: >>>> error: #error The current setting for native-objc-exceptions does not >>>> match that of gnustep-base ... please correct this. >>>> >>>> So I am working to figure out why this is happening. >>>> >>> >>> Maybe you could try disabling the exceptions support for now. >>> >>> Is your work published somewhere in a public repository? SVN, Git, >>> Mercurial - anything? >>> >>> >>>> >>>> On Sat, Dec 10, 2011 at 6:02 AM, Ivan Vučica <ivuc...@gmail.com >>>> <javascript:_e(%7B%7D,'cvml','ivuc...@gmail.com');>> wrote: >>>> > Hi Jackie, >>>> > >>>> > On Wed, Dec 7, 2011 at 15:47, Jackie Gleason <jackieglea...@gmail.com >>>> <javascript:_e(%7B%7D,'cvml','jackieglea...@gmail.com');>> >>>> > wrote: >>>> >> >>>> >> Yup that looks like the right one there looks like there is a link >>>> to the >>>> >> Labs toward the end. I am also looking into some of the options for >>>> a port >>>> >> of UIKit but not very far along there. Some people have also been >>>> having >>>> >> success with Cocotron (using my toolchain compiling), however, since >>>> I don't >>>> >> have XCode or a mac (although if I get desperate my gf does) I have >>>> stuck >>>> >> with trying to get GNUStep to work compile (see original message). >>>> > >>>> > >>>> > I intend to work on UIKit using OpenGL and primarily targeting X11. I >>>> began >>>> > work on UIApplication, and intend to work on it slowly. >>>> > >>>> > It's in the GNUstep repository under dev-libs. >>>> > >>>> >> >>>> >> >>>> >> I have included the config.log, however, I think the real problem >>>> here is >>>> >> for some reason the pthreads stuff isn't get included. This seems odd >>>> >> considering it should be included inside the platform folder >>>> included. I >>>> >> know there can be some problems with Bionic and pthreads but join >>>> shouldn't >>>> >> be that issue. >>>> >> >>>> >> GnuStep Make seems to compile fine... >>>> >> >>>> >> jackie@jackie-Latitude-E6410:~/tmp/gnustep/make$ ls >>>> >> bin etc share >>>> >> jackie@jackie-Latitude-E6410:~/tmp/gnustep/make$ ls ./bin/ >>>> >> debugapp gnustep-config gnustep-tests openapp opentool >>>> >> >>>> >> Am I missing some sort of fancy include in my CFLAGS or LDFLAGS? >>>> > >>>> > >>>> > From what I can see in config.log, linker step of compiling is >>>> failing on >>>> > the pthread_join() test, just as you documented in your later email. >>>> > >>>> > Just look for the line: >>>> > "configure: failed program was:" >>>> > and this line will be followed by the program that failed. >>>> > >>>> > Program that failed is testing for pthread_join(). Looking above the >>>> program >>>> > that failed, I see the following: >>>> > >>>> > <a long path to ld>/bin/ld: cannot find -lpthread >>>> > >>>> > You probably need to tell the linker where to find libpthread.a. >>>> LDFLAGS >>>> > then needs to contain -Lfolder/which/contains/libpthread/dot/a in >>>> addition >>>> > to any other options you want to have in there. >>>> > >>>> > In your later email you stated: >>>> >> >>>> >> if I set pthread_ok=yes to goes on to the next issue (seems test are >>>> ran >>>> >> even when cross compile which of course fails.) >>>> >> Although that I can just change it I am worried I have my linking >>>> set up >>>> >> wrong, any help would be great. >>>> > >>>> > >>>> > Can you document where it fails, apart from tests? >>>> > >>>> > Also, it might be possible to turn off thread support under GNUstep. >>>> > >>>> > -- >>>> > Ivan Vučica - i...@vucica.net >>>> <javascript:_e(%7B%7D,'cvml','i...@vucica.net');> >>>> > >>>> > >>>> >>> >>> >>> >>> -- >>> Ivan Vučica - i...@vucica.net >>> <javascript:_e(%7B%7D,'cvml','i...@vucica.net');> >>> >>> >>> >> >> >> -- >> Ivan Vučica - i...@vucica.net >> <javascript:_e(%7B%7D,'cvml','i...@vucica.net');> >> >> >> >> _______________________________________________ >> Gnustep-dev mailing list >> Gnustep-dev@gnu.org <javascript:_e(%7B%7D,'cvml','Gnustep-dev@gnu.org');> >> https://lists.gnu.org/mailman/listinfo/gnustep-dev >> >> > > > -- > Info about Islam: http://wikiz.info/islam > > -- Gregory Casamento Open Logic Corporation, Principal Consultant (240)274-9630 (Cell) http://www.gnustep.org http://heronsperch.blogspot.com
_______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org https://lists.gnu.org/mailman/listinfo/gnustep-dev