Yesterday I got it. Here you have the mono.tar.gz. (Edit: Now a working 2.10.9 version including the most important assemblies from the GAC compiled without FPU support. Use the runmono script, or it will search the gac somewhere else than in the same path. The pagacke has about 7, the extracted content about 18 megabytes)
Inside the tar.gz is a single binary called mono. It's the whole unmanaged part of the runtime. In theory you should be able to just place it and all required assemblies into your project output directory and run "./monorun myproject.exe"
The build script will come in a few hours.
So, what was the problem? The -static flag got just removed by libtool.
What was the solution?
make LDFLAGS="$LDFLAGS -all-static"
Let me explain. Because different architectures have different needs and abilities, there is a script called libtool which abstracts the platform specific flags, tools and whatever. It's design is, that make calls libtool instead of gcc, libtool modifies the arguments given and calls gcc by itself. So the -static flag was removed from the LDFLAGS. Why I can only guess, maybe because some architectures like solaris have a real problem with -static. Doesn't really matter, -all-static tells libtool to add the -static flag everywhere.
So why give the modded LDFLAGS to make instead of configure? The configure script tries out gcc's ability to build running binaries. But that without libtool, so gcc throws an "I do not know that flag" error. And why only the LDFLAGS? Libtool throws the same error if the argument -mode=link is not set.
When the build script is posted, you will see a bit frickling with -l and -pthread flags. Yep, that was a bit try & fail. In a static build, you need to add all used libraries and their dependecies with -l to the linker flags. But here you need to take care, it can happen that you get multiple definitions. My example here was a function existing in libc and libpthread. So I had to remove -lc and -lpthread and use the gcc implementation -pthread which resolves this problem by itself.
If you want to know which libraries are needed here, just go somewhere where you have the dynamic linked binaries and type "ldd mybinary", it will list the linked libs. the ld-linux.so you need not to and also cannot add, thats the loader which is not more needed when you link statically.
I will now try if Core Droid is working with this mono binary, and if yes go further with Disk Droid and App Droid.
Ralph
Edit: Tried Core Droid, it throws a few exceptions, because of that first I'll pack a mono-dev.tar.gz containing everything needed for remote debugging.
Tuesday, February 28, 2012
Tuesday, February 21, 2012
Mono for Android Console the next try
Yesterday after I finished porting the android ndk r7 toolchain to android. I gave it another try with -static... Error
So the game is starting again, I hope, that I learned enough by porting the android ndk toolchain to master it this time.
Wish me luck
Ralph
So the game is starting again, I hope, that I learned enough by porting the android ndk toolchain to master it this time.
Wish me luck
Ralph
Android Build System, NDK Toolchain built for arm 2
The build of sunday worked only in chroot. Added -static to the CFLAGS and now it's working without chroot. Here you go: ndk.tar.gz
Just place it on your sdcard, su, cd /, tar xzf /mnt/sdcard/ndk.tar.gz
When done, you find it in /data/local
Have Fun
Ralph
Just place it on your sdcard, su, cd /, tar xzf /mnt/sdcard/ndk.tar.gz
When done, you find it in /data/local
Have Fun
Ralph
Monday, February 20, 2012
Android Build System, NDK Toolchain built for arm
Hi,
Just a short status,
This weekend I got the android toolchain built in the ubuntu chroot env against the headers and libs of itself :D
It was late yesterday and I just wanted to relax a bit before a new working week starts, so I still need to see which linker loader it tries to use at execution. This decides if I need to build it again using the correct linker or if it's ok how it is now. In each case it is possible now to build things for android in android. If with chroot or not we will see.
Here are the instructions:
Here are the instructions:
- Install a chroot environment wich is able to build automake sources
- Create a working directory inside this chroot env
- Put this http://pastebin.com/tk8LGFZ8 with the filename "get" into this working dir
- Put this http://pastebin.com/GjpgtiR2 with the filename "stage1" into this working dir
- Chmod both with 0755
- extract the android ndk into this working dir
- run ./get
- run ./stage1
- Look into workingdir/out/stage1, there should be all like it would be installed in android (/data/local/)
- Play with it :D
Kind regards
Ralph
Saturday, February 18, 2012
Android Build System
Since I hate crosscompiling in the meantime, I decided to build the Android NDK for Android and include such little tools like automake, autoconf, ...
The Plan:
The Plan:
- Install my NotAndBuntu on my Xoom (not really, its already installed)
- Inside NotAndBuntu apt-get install build-essential
- Build the Android NDK against NotAndBuntu
- Build the Android NDK against the Android NDK built against NotAndBuntu :D
- The result should be something installed in /data/ndk able to build directly in android automake dependent packages
- Say byebye cross compiling
- Continue with building mono
Wish me luck
Ralph
Mono for Android Console
Yep, this is needed for my Core Droid Service project.
What happened until now?
What happened until now?
- Played around a lot
- Begun to hate cross compiling
- Made a plan (Android Build System)
Opening
There are already a few android travels I finished more or less successful. Most of them alone only presenting the result. But today I decided to write a travel diary for all who want to follow me.
Here some links to past and lasting travels:
- Modding Advent Vega for UMTS http://forum.xda-developers.com/showthread.php?t=957790
- Ubuntu chroot environment for Xoom http://forum.xda-developers.com/showthread.php?t=987740
- The killing of my Xooms baseband :D http://forum.xda-developers.com/showthread.php?t=984876
- Lets build a kernel build system http://forum.xda-developers.com/showthread.php?t=1157884
- A filemanager (German Site, below are the market links) http://www.ralphs-tech.com/android/disk-droid
- A bridge Apps <-> OS (German site, below is the googlecode link) http://www.ralphs-tech.com/android/core-droid-service
Kind regards
Ralph
Subscribe to:
Posts (Atom)