Android NDK r5 - stdio.h : sys/cdefs.h not found ! - Android Software/Hacking General [Developers Only]

Hello,
Sorry for my bad english...
I try to build a native application but i get a linkage problem.
Code:
...
/usr/src/android-ndk-r5/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi-gcc -c -g -I/usr/src/android-ndk-r5/build/platforms/android-r5/arch-arm/usr/include test.c -o test.o
In file included from test.c:1:
/usr/src/android-ndk-r5/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/../lib/gcc/arm-eabi/4.4.0/include-fixed/stdio.h:50:23: error: sys/cdefs.h: No such file or directory
/usr/src/android-ndk-r5/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/../lib/gcc/arm-eabi/4.4.0/include-fixed/stdio.h:51:24: error: sys/_types.h: No such file or directory
...
I don't found sys/cdefs.h or sys/_types.h, there is juste sys/types.h exists, no other standard lib...
Can someone help me to clarify this situation ?
* Does Google forgot to put include on NDKr5 zip ?
* Or it's normal and so where can i found thems (cdefs.h & co) ?
Thanks a lot
Molux

Did you ever get an answer to this post. I have the same issue

A little late but these are outside of the actual toolchain, I found mine here...
-I/../AndroidNDK/android-ndk-r6/platforms/android-9/arch-arm/usr/include

why i no found folder 'arm-eabi-4.4.0' in ndk/toolchains ?

It's an old question, but it ranked high on Google searches, so the answer below may help a frustrated programmer or two:
Assume you just want to build a simple hello world application, and don't want to bother yourself with Makefiles.
Or maybe you do want to bother yourself with makefiles, but just want to build the same thing for Linux and Android, and just replace the toolchain. An easy going recipe is below. Versions numbers will change, principles will probably remain the same.
Assume you also got tired about figuring where the hell those crt* files are at, why the cross compiler insists on refusing to find your include files, and you are minutes away from doing the right thing and create a proper Android.mk file (or Gradle... see source link below for my personal thought about it [hint: they are not very positive]).
Then do the following, live long and prosper:
Host: linux-x86_64 . Target: ARM (thumb).
# Adding GCC wrapper for "stand alone" NDK:
$ export SYSROOT=$NDK/platforms/android-21/arch-arm
$ export CC_NDK="$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc-4.8 --sysroot=$SYSROOT"
Then you can build by invoking $CC_NDK ...
Use your own version of course. A similar method can be done with the AOSP/CM/whatever platform base you have itself, but that should get you going.
Source: http://ronubo.blogspot.co.il/2016/01/standalone-gcc-clang-cross-compiling.html

Thanks @ronubo. Helpful blog post on lkm debugging too.

Related

[Android] Make bootpackage for booting Android directly

Hi guys,
some of you have asked whether there is an Android ROM yet, but there isn't, so we have to make with workarounds. One very practical one would be to install a clean WM6 ROM, and boot straight into Android.
Now before, we used haret.exe, and we still will. HaRET has a great functionality with it that allows you to make one big .EXE file containing the zImage, initrd and script. Now with the script - this is actually a problem, because
we may want to play with the boot params
we need to put our apn/internet credentials in
So it would be best to have the big .EXE and the script. This is what I've done.
To do it (works under Linux only!):
Download or copy the initrd.gz and zImage you want to use into a directory. Open a command line, switch to that directory. Type:
Code:
wget http://handhelds.org/cgi-bin/cvsweb.cgi/~checkout~/haret/tools/make-bootbundle.py
wget http://gigatron.de/.android/haret-scriptboot.exe
touch empty
python make-bootbundle.py -o boot_android.exe haret-scriptboot.exe zImage initrd.gz empty
(You may need to change the filenames of zImage and/or initrd.gz accordingly.)
Out comes boot_android.exe file. You can now
put it onto your SD card, and create a link to it in \Windows\StartUp
copy it directly into \Windows\StartUp
and in the same directory where you put boot_android.exe, put your default.txt.
Voilà, your phone will boot up Android automatically.
I advise you to put it on the SD card, because then you can take it out during startup if you do not want to start Android automatically.
Hope you enjoy it.
Stefan
P.S.:For starters, I have put together a version with the latest initrd.gz and zImage, at the usual place http://gigatron.de/.android (boot_android_09-03-18.exe)
P.P.S: Here's the diff for the patched haret-scriptboot.exe:
Code:
Index: src/wince/haret.cpp
===================================================================
RCS file: /cvs/haret/src/wince/haret.cpp,v
retrieving revision 1.24
diff -r1.24 haret.cpp
197,198c197,201
< // Run linked in script.
< runMemScript(script_data);
---
> if (len > 1)
> // Run linked in script.
> runMemScript(script_data);
> else
> scrExecute("default.txt");
Hope we can move everyone here.. seidler
Downloading exe file now to try out.. seems like a good compromise for the time being.
Keep up the good work!
Edit: this ignores the startup.txt file and uses the default.txt only?
bally3 said:
Hope we can move everyone here.. seidler
Downloading exe file now to try out.. seems like a good compromise for the time being.
Keep up the good work!
Edit: this ignores the startup.txt file and uses the default.txt only?
Click to expand...
Click to collapse
Well, didn't mean to move everyone here, it's just that I'm starting different threads for different topics now. (Kinda like a subforum, which we don't have.)
I didn't know about startup.txt, but it is right, it only reads default.txt. I'm actually thinking about adding an inclusion mechanism to the HaRET script language, so we can set the common parameters (MTYPe etc.) all internally in the big .EXE and still allow to set the user-specific details in the (external) default.txt
Stefan
this is SO GREAT!
would it be possible to include such an exe file in all bundles on androidonhtc ?
wow, amazing, thanks!
kubia said:
this is SO GREAT!
would it be possible to include such an exe file in all bundles on androidonhtc ?
wow, amazing, thanks!
Click to expand...
Click to collapse
I don't know about all the previous packages, but I think for all future ones this should definitely be the case.
Stefan
yes, of course, that's what i meant
Helloseidler2547,
I downloaded the sources on http://android.git.kernel.org/repo , as it's written on androidonhtc.com.
In the lastet system.img we can't specify another language than english, but when i look at sources, i can see in many apps sources plenty of languages resources files.
is it the same version used by DZO and you for the packages ?
seidler2547 said:
I didn't know about startup.txt, but it is right, it only reads default.txt. I'm actually thinking about adding an inclusion mechanism to the HaRET script language, so we can set the common parameters (MTYPe etc.) all internally in the big .EXE and still allow to set the user-specific details in the (external) default.txt
Click to expand...
Click to collapse
Hmm, sometimes I'm quite blind. HaRET already has a RUNSCRIPT command, which will allow us to do all that we need. Oh well - silly me.
Stefan
thanks seidler, look like a good start... how are use using haret exactly? are there parameters or mouse actions ect?
I'm not sure if I understand your question correctly, but
- developers are using haret for all kinds of stuff, finding out how winmo does stuff and then porting it into the linux kernel
- users use haret just for booting Android (linux) and setting some kernel parameters in default.txt
HTH,
Stefan
seidler2547 said:
I'm not sure if I understand your question correctly, but
- developers are using haret for all kinds of stuff, finding out how winmo does stuff and then porting it into the linux kernel
- users use haret just for booting Android (linux) and setting some kernel parameters in default.txt
HTH,
Stefan
Click to expand...
Click to collapse
I was refering to how you were directly using it to boot, but it sounds to me like you are using the source code to recompile for you needs?
I'm farmiliar with what haret is used for, i was wondering how you got haret to directly boot linux instead of bringing up the window where you can change the default.txt location or listen for a network connection before clicking run.
joel2009 said:
I'm farmiliar with what haret is used for, i was wondering how you got haret to directly boot linux instead of bringing up the window where you can change the default.txt location or listen for a network connection before clicking run.
Click to expand...
Click to collapse
Just rename your default.txt to startup.txt
don't be too lazy to search
Yes, but with the script make-bootbundle.py, we can make one big .exe for users, containing zImage, initrd and default.txt, which can still read an additional external .txt file (using RUNSCRIPT) -> I think for the whole package this is more convenient for users. Also because the average user doesn't need to change a lot of variables (internet works without kernel parameters, at least for GSM, keyboard settings for at&t tilt could maybe be automated, and userspace access is possible too).
Stefan
Is it possible to install new apps on the latest version ? I have the version from 01-03-2009 and when i try to download an app, it tells me "download failed - not enough space" or something.
You are asking in the wrong thread. Try http://forum.xda-developers.com/showthread.php?t=396782&goto=newpost
Stefan
Oh sorry
Thanks
excogitation said:
Just rename your default.txt to startup.txt
don't be too lazy to search
Click to expand...
Click to collapse
Before trying to insult someone by forwarding them to google, try not to be to be too lazy to read the question. I was asking about stefans bundle. Not what is haret and how to use it.
Thanks,
Joel

Building and deploying from cupcake source code to my device - using Mac

Hi all,
I am trying to setup my Mac OSX (Mac Mini) to build and deploy the Cupcake source code and deploy the built images on my ADP1 device.
I must admit - I am no Linux guy, so a bit slow on understanding the various instructions.
My problem - I was somehow able to get the sources down to my Mac, and even run a successful MAKE.
But - got stuck there (could not figure out how to run the built images on the emulator).
So I decided to be brave and compile & install on my ADP1 device.
This is where I am stuck:
In the explanation at the Google site, they claim there should be a ".Repo" directory holding a file called "manifest.xml" in it, and that I should download and add to that directory a file called "local_manifest.xml".
I can not find such a ".Repo" directory, and hence - dont know where to put that file.
Any help would be highly appreciated !
Shimon Shnitzer
TAKEphONE said:
Hi all,
I am trying to setup my Mac OSX (Mac Mini) to build and deploy the Cupcake source code and deploy the built images on my ADP1 device.
I must admit - I am no Linux guy, so a bit slow on understanding the various instructions.
My problem - I was somehow able to get the sources down to my Mac, and even run a successful MAKE.
But - got stuck there (could not figure out how to run the built images on the emulator).
So I decided to be brave and compile & install on my ADP1 device.
This is where I am stuck:
In the explanation at the Google site, they claim there should be a ".Repo" directory holding a file called "manifest.xml" in it, and that I should download and add to that directory a file called "local_manifest.xml".
I can not find such a ".Repo" directory, and hence - dont know where to put that file.
Any help would be highly appreciated !
Shimon Shnitzer
Click to expand...
Click to collapse
".Repo" is a hidden folder any folder with a "." in front of it will be hidden, enable the viewing of hidden folders and you'll find it.
Thanks !
I knew I was probably missing something simple...

Any guides on how to create/compile custom roms?

I am a linux user...
Anyone can share the howto or if there are any guides?
+1 bumping this thread
Second that...
http://www.koushikdutta.com/2009/08/build-configuration-for-t-mobile.html#links
He seems to have a script to compile the Kernel...
I don't know to what extent this would help us but it is a start. I dont quite know how the apps are installed on a new ROM....
It would be nice if someone can explain what is needed and what is optional in the kernel and some of the mods that other people are doing and how they integrate in the OS.
I see a lot of improvements in the new ROM's but no how-to on doing it your self. I thought that was the point of having open source OS.
I would quite like this as well =o)
Have made a bit of a start by following this:
http://source.android.com/download
Shows you how to get all the code and do a build.
I believe the next thing would be to pick the required files from the output folder of the build, dump the boot.img and replace the kernel with 32B or 32A one, add the Magic model config file (to ramdisk) and recreate the boot.img
Replace/Add any modules required like maybe wifi or bluetooth, then need to change the build.prop file and put it all in to update.zip and sign the file.
Haven't had time to test this out but seems kind of logical...maybe?
Hello!
I'm following the android.com tutorial, but I want to ask: how can I download the donut branch? There's no mention in the entire site about it... Also, the cyanomod's multitouch and so on, where does it come from? Is it made by himself or it's somewhere in the net?
Thanks
Learn how to use GIT to get the donut branch from here: http://android.git.kernel.org/
Proble is that it doesn't specify the donut project path
Is there a command to list all project paths? I can't seem to find it
L10nH34Rt said:
Proble is that it doesn't specify the donut project path
Is there a command to list all project paths? I can't seem to find it
Click to expand...
Click to collapse
Code:
git branch -a
in any local git directory
Ok, then so far I've downloaded the donut branch, and compiled too. What now?
1. how to create a ROM from the made files?
2. how to compile the kernel / how to replace the one created with the make command with the one I'm running on?
3. is there any option I can configure to fit my phone? (HTC Magic 32A)
4. how can I root my ROM?
thanks
there is this guide that i have found:
http://www.koushikdutta.com/2009/08/build-configuration-for-t-mobile.html
'make' finished with success but i can't find how to transform it into 'update.zip' file...
anyone?
It says that in the link you have posted yourself.

Project: apk2

hi folks!
i'm not a developer but sometimes i do some scripting.Now i'm working on a project that called "APK2",and i think that could be useful!
Some months ago, I thought "why don't create a package manager and a package system to install real linux packages, and not just apps? I may want to install some command-line tools to run with terminal emulator" then I wrote this script, named apk2.sh, that installs some particular packages (I wrote another script to easily create this type of packages): he simply does the apt-like un-tar in /, but it installs a config directory too, to remove the installed packages.
It supports the preinst, postinst, prerm, postrm scripts too.
Tell me if it could be interesting, and I'll put it here.
If so, I need testers
If not, simply tell me, and I give up.
so could you be able to run like air crack through debian with this or?
olvap377 said:
so could you be able to run like air crack through debian with this or?
Click to expand...
Click to collapse
I could be able to run it on Android if someone can port all the libs to armv5e
I know, you have to do the porting in order to run it, but for example if there is the package for debian armv5 I think it should work if you take all the deps from the repo (may need some repacking, just to remove the CONTROL folder, and maybe to add the file needed to uninstall and various preinst, postinst etc. ).
And you don't need to run a debian or an ubuntu on Android, that's not really fast.
What do you think?
i think that this sounds really good and if it worked fully it would be a major addition to android development im hoping youll continue with this
olvap377 said:
i think that this sounds really good and if it worked fully it would be a major addition to android development im hoping youll continue with this
Click to expand...
Click to collapse
Thank you!
Any tester? I attach the scripts to now how apk2 works, just run it without any parameter, and it will show you
The other script it's simple to use, you just have to run it once to create in your home the basilar directory tree, you have to complete it and put the files in it, then you just have to put your preinst-postinst-prerm-postrm scripts in the ~/yourpackage/system/etc/apk2 directory, if you have some.
Then run the script again, insert the same package name, and here we are! The package is build! It's in the packagename directory in your home, in .apk2 and in .tar.gz, if you have to edit something do it on the tar.gz, and then change the extension in .apk2
PS: rename the files *.sh.txt into *.sh, because this forum doesn't allow .sh attachments...
xela92 said:
Thank you!
Any tester? I attach the scripts to now how apk2 works, just run it without any parameter, and it will show you
The other script it's simple to use, you just have to run it once to create in your home the basilar directory tree, you have to complete it and put the files in it, then you just have to put your preinst-postinst-prerm-postrm scripts in the ~/yourpackage/system/etc/apk2 directory, if you have some.
Then run the script again, insert the same package name, and here we are! The package is build! It's in the packagename directory in your home, in .apk2 and in .tar.gz, if you have to edit something do it on the tar.gz, and then change the extension in .apk2
PS: rename the files *.sh.txt into *.sh, because this forum doesn't allow .sh attachments...
Click to expand...
Click to collapse
in non-linux speak (layman's terms), what could i do with this...my interest is peaked
what are some "real linux packages" that one might want
tnpapadakos said:
in non-linux speak (layman's terms), what could i do with this...my interest is peaked
what are some "real linux packages" that one might want
Click to expand...
Click to collapse
i.e., the one olvap377 mentioned: air crack (I think it's possible).
or, we can run every app that does not need X server.
I created some demo packages (containing 2 scripts), one is SwapTools, and lets you enable/disable swap with 2 simple cmds (swap-enable and swap-disable); at the first run it collects some info, like the swappiness and the swap partition, then it saves the conf in a file (using swap-disable with --remove-conf will remove the conf file).
Another one I created is remount: you can remount your /system partition rw or ro just by typing on a terminal emulator
Code:
remount rw
or
Code:
remount ro
But you can try to use other appz compiled for armv5 processors, like all the debian apps, except for the one with GUI (we run on framebuffer, no X server :/ )
PS: I attach the pkgs, I added the .zip extension, just rename it in pkgname.apk2
Honest question: Why reinvent the wheel? Other embedded Linux projects have used ipkg to good effect, or its close relative opkg (refs from same link) which is used by Openmoko. A port of this to Android systems which have uClibc should be nearly trivial.
xela92 said:
i.e., the one olvap377 mentioned: air crack (I think it's possible).
or, we can run every app that does not need X server.
I created some demo packages (containing 2 scripts), one is SwapTools, and lets you enable/disable swap with 2 simple cmds (swap-enable and swap-disable); at the first run it collects some info, like the swappiness and the swap partition, then it saves the conf in a file (using swap-disable with --remove-conf will remove the conf file).
Another one I created is remount: you can remount your /system partition rw or ro just by typing on a terminal emulator
Code:
remount rw
or
Code:
remount ro
But you can try to use other appz compiled for armv5 processors, like all the debian apps, except for the one with GUI (we run on framebuffer, no X server :/ )
PS: I attach the pkgs, I added the .zip extension, just rename it in pkgname.apk2
Click to expand...
Click to collapse
thanks dude
olearyp said:
Honest question: Why reinvent the wheel? Other embedded Linux projects have used ipkg to good effect, or its close relative opkg (refs from same link) which is used by Openmoko. A port of this to Android systems which have uClibc should be nearly trivial.
Click to expand...
Click to collapse
I have also an Openmoko phone
I know very well ipkg/opkg, it could be interesting a porting, but I thought it was better to create a little lighter script to do it, because 1. a script that uses sh is usable in every system, you can either to install armv5e pkgs, or any armv* pkg, you have just to change some little things; 2. I don't know how to port, and I'm not able to do programming.
If you are interested and know how to do a porting, it could be very useful, because opkg has really lots of functions...
I just did what I could
xela92 said:
I have also an Openmoko phone
I know very well ipkg/opkg, it could be interesting a porting, but I thought it was better to create a little lighter script to do it, because 1. a script that uses sh is usable in every system, you can either to install armv5e pkgs, or any armv* pkg, you have just to change some little things; 2. I don't know how to port, and I'm not able to do programming.
If you are interested and know how to do a porting, it could be very useful, because opkg has really lots of functions...
I just did what I could
Click to expand...
Click to collapse
Ahh, okay, I see what you mean. Fair enough; I haven't seen your work so far, I was just concerned you were doing unneeded work. 'Course sometimes it's good to do that for the learning experience.
I don't have a full build setup for Android, so I can't recompile (I do have a full build setup for building Optware packages, but that's not quite the same), but I believe most custom ROMs ship uClibc. I'm not familiar enough with uClibc to know if you need to build against an exact version, though you could copy opkg from your Openmoko phone for the heck of it and see if it runs
olearyp said:
Ahh, okay, I see what you mean. Fair enough; I haven't seen your work so far, I was just concerned you were doing unneeded work. 'Course sometimes it's good to do that for the learning experience.
I don't have a full build setup for Android, so I can't recompile (I do have a full build setup for building Optware packages, but that's not quite the same), but I believe most custom ROMs ship uClibc. I'm not familiar enough with uClibc to know if you need to build against an exact version, though you could copy opkg from your Openmoko phone for the heck of it and see if it runs
Click to expand...
Click to collapse
Ya mean, copy the binary??? If so, it won't work of course, because the architecture of the openmoko processor is armv4t, it wouldn't see my binary
Nethertheless, if someone is interested
PS: please, could someone test my scripts? Thank you dudes
xela92 said:
Ya mean, copy the binary??? If so, it won't work of course, because the architecture of the openmoko processor is armv4t, it wouldn't see my binary
Nethertheless, if someone is interested
PS: please, could someone test my scripts? Thank you dudes
Click to expand...
Click to collapse
Heh, oh, older ARM core. Not paying attention. I will now stop hijacking your thread
olearyp said:
Heh, oh, older ARM core. Not paying attention. I will now stop hijacking your thread
Click to expand...
Click to collapse
No problem, man
No testers?
Please give me a feedback. If u want, I can make some apk2 by debs for armv5... Then I accept hints like "howto manage dependencies", 'cause I've no ideas...
"Tester"
xela92 said:
Please give me a feedback. If u want, I can make some apk2 by debs for armv5... Then I accept hints like "howto manage dependencies", 'cause I've no ideas...
Click to expand...
Click to collapse
Hi I have and HTC Hero from Sprint, I'm not a linux power user but I spent lots of time in my computer running Ubuntu just for 2 big reasons 1 freeware and 2 it has the best an simplest packet manager... I love deb files that installs like any .exe win programs I love that! I'm son not a coder and have little to no skills under Linux shell I use my sudo nautilus commands and so because I need it but I hate to untar or tar gz crap... for me that it old and useless some linux power user may get offended by that comment but hi times changes we love GUI... if you manage to post prints screens or a word open office or PDF documentation dummy proof I'm very up to be a Happy tester... the other thing I'm a Digital Graphic Designer if you need some design for a GUI and can try to help you in making and eye candy app...
Here it the way I will love to see grow this project... finding a way to installed it as an apk file like others in the android market so users can install the app easy then...in top of that a simple GUI to browse to the SD card in order to get the apk2 file... you where talking about not being able to run programs that has GUI that it is sad but still interesting but a lot of work to do without a good community because that means that all GUI may need to be re-design to the different resolution on the phones and be touch friendly...
I'm not sure if I'm helping at all but I love the big picture behind your project...
I'm porting opkg on Android, but i'm can't tell that's a trivial task )))
i also wrote simple howto "building and porting linux apps for android from scratch", but on russian. If needed i can do some translating and put here too.
Also may be we can open project for buildroot-like framework for android and opkg's repository. In my how-to i'm use crosstool-ng + gcc + uClibc.
XVilka said:
I'm porting opkg on Android, but i'm can't tell that's a trivial task )))
i also wrote simple howto "building and porting linux apps for android from scratch", but on russian. If needed i can do some translating and put here too.
Also may be we can open project for buildroot-like framework for android and opkg's repository. In my how-to i'm use crosstool-ng + gcc + uClibc.
Click to expand...
Click to collapse
Wow! Please do some translating!
But, when you finish the porting, how will you manage to port the packages?
Will you use the debian pkgs changing the extension? Would it work?
Thanks a lot!
No, we want to create only android repository of packages, based on opkg (ipkg)
for arm, mips and others platfofms.

[Shell Script] Tools for linux users

Hello guys!
I'm posting a set of shell scripts to help Linux users with Android. Operations such as renaming apks and generating rules file. The scripts are integrated with KDE, so renaming a bunch of apks or installing it in your phone is a two-click operation.
I'm not a good shell script coder and just starting on Android world, so, if anyone wants to help me, I will be very grateful.
Since I'm not allowed to post outside links, you can use the terms "ataxexe github android tools" to get my github page with the updated code.
Cheers
The shebang in all your files is not correct. It should start with #!
Thanks, I will fix it.

Categories

Resources