NickThePowerful / iphone-dev

Automatically exported from code.google.com/p/iphone-dev
0 stars 0 forks source link

fail to compile odcctool under MinGW #62

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. follow instructions to build llvm and configure odcctool
2. make in odcctool under MinGW (using MSYS)
3.

What is the expected output? What do you see instead?
Wants build pass.
but it complains cannot find sys/cdefs.h (can reuse the one from cygwin)
and sys/wait.h(no idea).

What version of the product are you using? On what operating system?
latest, windows xp pro 32bit.

Please provide any additional information below.

Original issue reported on code.google.com by pin...@gmail.com on 26 Sep 2007 at 5:15

GoogleCodeExporter commented 9 years ago
Following is my progress, but I decide to launch a Linux in VM to have some 
fun. Wish
someone with time and energe to continue.

1. mingw auto installer
2. MSYS
3. flex, bison, regexpr, perl, mingw-runtime
4. subversion (in fact using the one in cygwin to check out toolchain
source)
5. copy header files from cygwin /usr/include (I don't know which
package contains sys/cdefs.h)
6. export CFLAGS=' -I /usr/include '
7. follow the steps to build llvm-gcc
8. get wait.h from cygwin, it depends on usr/include/cygwin/wait.h
9. configure with CFLAGS to add msys/include into search path
10. add typedef long id_t into msys/include/sys/time.h
11. define type u_int32_t,u_int,__ino64_t,uid_t,gid_t,u_char in
msys/include/stdint.h
12. define O_FSYNC in sys/fcntl.h
13. reuse cygwin's usr/include/fts.h
14. define __dev32_t in sys/types.h
15. wrap _off_t in the _types.h by ifndef
16. get _ansi.h newlib.h
17. get machine/*.h from cygwin, but this cause _ssize_t and
_sys_errlist conflict, wrap it with ifndef
18. define MAXNAMELEN same as FILENAME_MAX in dirent.h
19. patch libstaff/crc32.h include stdint.h
20. get err.h from cygwin usr/include
21. patch odcctools/ar/archive.h to include stdint.h
22. get paths.h from cygwin usr/include
23. let archive.c include sys/errno.h
24. let ar/misc.c include sys/signal.h, and wrap sigset_t with ifdef

block at:

cd ar && make
make[1]: Entering directory
`/c/iphone/tc/latest/iphone-dev/build/odcctools/ar'
gcc -o ar append.o ar.o archive.o contents.o delete.o extract.o misc.o
move.o print.o replace.o -L/c/msys/lib -L/c/msys/local/lib
-L..//libstuff -lstuff
append.o:append.c:(.text+0xab): undefined reference to `warn'
ar.o:ar.c:(.text+0x96): undefined reference to `err'
ar.o:ar.c:(.text+0x270): undefined reference to `warnx'
ar.o:ar.c:(.text+0x29b): undefined reference to `warnx'
....

Original comment by pin...@gmail.com on 27 Sep 2007 at 3:58