[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Tinycc-devel] libtcc.dll
From: |
Doug Currie |
Subject: |
[Tinycc-devel] libtcc.dll |
Date: |
Sun, 26 Feb 2006 18:51:38 -0500 |
I have been able to create a libtcc.dll for WinXP using MinGW/MSYS;
the changes that were necessary were very minor. Perhaps this
description will help others use libtcc on Windows.
First, a small bug to report:
In tcc.c the function tcc_basename() follows the line:
#if !defined(LIBTCC)
but the function tcc_basename() is used in pe_build_exports() in
tccpe.c -- moving the #if line below the function tcc_basename()
eliminates a link error building libtcc.dll in PE target mode.
Second, configuring and making tcc with MSYS places a pathname in
config.h in MSYS format. For example, I passed the argument
--prefix=/c/Dev/tcc
to configure; this path was good for building tcc.exe and didn't
contain any spaces, unlike the default path. This creates the line
#define CONFIG_TCCDIR "/c/Dev/tcc"
in config.h. Manually changing this line to
#define CONFIG_TCCDIR "C:/Dev/tcc"
enables libtcc.dll to find the include files and libraries once the
library is built. [The application tcc.exe avoids this problem by
setting tcc_lib_path from the application's directory at startup. A
similar solution could be used for the library using DllMain.]
So, after configure, fix CONFIG_TCCDIR in config.h and make.
Finally, the library libtcc.dll can be built with the MSYS command:
gcc -O2 -shared -Wall -Wl,--export-all-symbols \
-mpreferred-stack-boundary=2 \
-march=i386 -falign-functions=0 -fno-strict-aliasing \
-DTCC_TARGET_PE -DLIBTCC -o libtcc.dll tcc.c
Regards,
e
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Tinycc-devel] libtcc.dll,
Doug Currie <=