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 _______________________________________________ Tinycc-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/tinycc-devel
