Error Invalid EXE Format when executing a exe.so built with winelib

Roger Wimbert rw at bb-sw.de
Wed Feb 28 10:49:05 CST 2007


Here is the Debug output:

warn:module:load_builtin_dll failed to load .so lib for builtin 
L"Z:\\bb\\s\\bc\\wine\\dmsw.exe.so": 
/bb/home/.wine/dosdevices/z:/bb/s/bc/wine/dmsw.exe.so: cannot allocate memory in 
static TLS block
warn:module:load_dll Failed to load module L"Z:\\bb\\s\\bc\\wine\\dmsw.exe.so"; 
status=c000007b
warn:module:load_builtin_dll failed to load .so lib for builtin 
L"Z:\\bb\\s\\bc\\wine\\dmsw.exe.so": 
/bb/home/.wine/dosdevices/z:/bb/s/bc/wine/dmsw.exe.so: cannot allocate memory in 
static TLS block
warn:module:load_dll Failed to load module L"Z:\\bb\\s\\bc\\wine\\dmsw.exe.so"; 
status=c000007b
wine: could not load L"Z:\\bb\\s\\bc\\wine\\dmsw.exe.so": Fehlerhaftes EXE-Format f³r


It has something to do with TLS memory or threads, but the /lib/tls/libc.so is linked in:

(rw 8 amd64) /bb/s/bc/wine 105>ldd dmsw.exe.so
         linux-gate.so.1 =>  (0xffffe000)
         libwine.so.1 => /usr/local/lib/libwine.so.1 (0x557be000)
         libm.so.6 => /lib/tls/libm.so.6 (0x558e8000)
         libc.so.6 => /lib/tls/libc.so.6 (0x5590a000)
         libdl.so.2 => /lib/libdl.so.2 (0x55a1f000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x56555000)

Our system:
(rw 8 amd64) /bb/s/bc/wine 106>uname -a
Linux amd64 2.6.5-7.193-smp #1 SMP Wed Jul 20 14:39:18 UTC 2005 x86_64 x86_64 x86_64 
GNU/Linux

glibc has version 2.3.3

A simple program does work, but no program which uses threads.

wine is created with the 32 bit libraries.

If I use the original exe of my program with wine, it does work.

Does anyone has an idea what is going wrong?

The makefile is attached.

Thanks a lot.

-------------- next part --------------
### Generated by Winemaker

TOPSRCDIR             = /bb/s
TOPOBJDIR             = /bb/s/bc/wine
SRCDIR                = .
SUBDIRS               =
DLLS                  =
EXES                  = dmsw.exe



### Common settings

CEXTRA                = -mno-cygwin -fno-pic -fno-PIC
CXXEXTRA              = -mno-cygwin
CFLAGS                = -D_DMSW
RCEXTRA               =
RCFLAGS               = -DBB_WINE
INCLUDE_PATH          = -I. -I/bb/nt/wine -I/bb/s/i -I/bb/fg/i -I/bb/ze/i -I/bb/fe/i -I/bb/pbm/i -I/bb/wb1/i
DLL_PATH              =
LIBRARY_PATH          = 
LIBRARIES             = -lmsvcrt40 -lws2_32 -lversion -lnetapi32 -liphlpapi -lcomctl32 -lshlwapi -lwinmm 



### dmsw.exe sources and settings

dmsw_exe_MODULE  = dmsw.exe
dmsw_exe_C_SRCS  = /bb/s/c/bbcrypt.c \
			/bb/s/c/bbdes.c \
			/bb/s/c/bbmalloc.c \
			/bb/s/c/bbmd5.c \
			/bb/s/c/bbo.c \
			/bb/s/c/bbtwofish.c \
			/bb/s/c/cmp.c \
			/bb/s/c/costri.c \
			/bb/s/c/cpy.c \
			/bb/s/c/datec.c \
			/bb/s/c/dfa.c \
			/bb/fg/c/dgcode.c \
			/bb/fg/c/dgvar.c \
			/bb/s/c/dhinfo.c \
			/bb/s/c/dholz.c \
			/bb/fg/c/digcte.c \
			/bb/fg/c/digecm.c \
			/bb/fg/c/digranox.c \
			/bb/fg/c/digvec.c \
			/bb/s/c/dirview.c \
			/bb/s/c/dirwalk.c \
			/bb/s/c/dmsb.c \
			/bb/s/c/dmsc.c \
			/bb/s/c/dmsca.c \
			/bb/s/c/dmse.c \
			/bb/s/c/dmsf.c \
			/bb/s/c/dmsfr.c \
			/bb/s/c/dmsg.c \
			/bb/s/c/dmsh.c \
			/bb/s/c/dmshc.c \
			/bb/s/c/dmsl.c \
			/bb/s/c/dmsliz.c \
			/bb/s/c/dmsm.c \
			/bb/s/c/dmsmv.c \
			/bb/s/c/dmsp.c \
			/bb/s/c/dmsr.c \
			/bb/s/c/dmss.c \
			/bb/s/c/dmssb.c \
			/bb/s/c/dmst.c \
			/bb/s/c/dmstast.c \
			/bb/s/c/dmsw.c \
			/bb/s/c/dmswf.c \
			/bb/s/c/dmswicon.c \
			/bb/s/c/dmsy.c \
			/bb/s/c/encode.c \
			/bb/s/c/fileleng.c \
			/bb/s/c/fordat.c \
			/bb/s/c/gtypes.c \
			/bb/fg/c/image.c \
			/bb/fg/c/imgprint.c \
			/bb/s/c/itoa.c \
			/bb/fg/c/jpegconv.c \
			/bb/s/c/lru.c \
			/bb/s/c/ltoa.c \
			/bb/s/c/map.c \
			/bb/s/c/msleep.c \
			/bb/s/c/packbits.c \
			/bb/s/c/packdiff.c \
			/bb/s/c/pfad.c \
			/bb/fg/c/rgbtools.c \
			/bb/s/c/rtt.c \
			/bb/s/c/scrinfo.c \
			/bb/s/c/set.c \
			/bb/s/c/sockcom.c \
			/bb/s/c/softdum.c \
			/bb/s/c/swap.c \
			/bb/s/c/syslog.c \
			/bb/s/c/textino.c \
			/bb/fg/c/tiffconv.c \
			/bb/s/c/udpcom.c \
			/bb/s/c/utoa.c \
			/bb/s/c/vgl.c \
			/bb/s/c/w32argv.c \
			/bb/fg/c/w32bmp.c \
			/bb/s/c/w32error.c \
			/bb/s/c/w32font.c \
			/bb/fg/c/w32ico.c \
			/bb/s/c/w32macadr.c \
			/bb/s/c/w32pfad.c \
			/bb/s/c/w32pipe.c \
			/bb/s/c/w32print.c \
			/bb/s/c/w32puts.c \
			/bb/s/c/w32reg.c \
			/bb/fg/c/w32scalebmp.c \
			/bb/s/c/w32screen.c \
			/bb/s/c/w32scroll.c \
			/bb/s/c/w32toolbar.c \
			/bb/s/c/w32tools.c \
			/bb/s/c/w32winms.c \
			/bb/s/c/wsinit.c \
			/bb/s/c/zeitc.c 

dmsw_exe_CXX_SRCS=
dmsw_exe_RC_SRCS = /bb/nt/rc/dmsw/dmsw_wine.rc
dmsw_exe_LDFLAGS = -mwindows \
			-mno-cygwin
dmsw_exe_DLL_PATH=
dmsw_exe_DLLS    = odbc32 \
			ole32 \
			oleaut32 \
			winspool
dmsw_exe_LIBRARY_PATH=
dmsw_exe_LIBRARIES= uuid

dmsw_exe_OBJS    = $(dmsw_exe_C_SRCS:.c=.o) \
			$(dmsw_exe_CXX_SRCS:.cpp=.o) \
			$(dmsw_exe_RC_SRCS:.rc=.res)



### Global source lists

C_SRCS                = $(dmsw_exe_C_SRCS)
CXX_SRCS              = $(dmsw_exe_CXX_SRCS)
RC_SRCS               = $(dmsw_exe_RC_SRCS)


### Tools

CC = winegcc
CXX = wineg++
RC = wrc


### Generic targets

all: $(SUBDIRS) $(DLLS:%=%.so) $(EXES:%=%.so)

### Build rules

.PHONY: all clean dummy

$(SUBDIRS): dummy
	@cd $@ && $(MAKE)

# Implicit rules

.SUFFIXES: .cpp .rc .res
DEFINCL = $(INCLUDE_PATH) $(DEFINES) $(OPTIONS)

.c.o:
	$(CC) -c $(CFLAGS) $(CEXTRA) $(DEFINCL) -o $@ $<

.cpp.o:
	$(CXX) -c $(CXXFLAGS) $(CXXEXTRA) $(DEFINCL) -o $@ $<

.cxx.o:
	$(CXX) -c $(CXXFLAGS) $(CXXEXTRA) $(DEFINCL) -o $@ $<

.rc.res:
	$(RC) $(RCFLAGS) $(RCEXTRA) $(DEFINCL) -fo$@ $<

# Rules for cleaning

CLEAN_FILES     = y.tab.c y.tab.h lex.yy.c core *.orig *.rej \
                  \\\#*\\\# *~ *% .\\\#*

clean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__)
	$(RM) $(CLEAN_FILES) $(RC_SRCS:.rc=.res) $(C_SRCS:.c=.o) $(CXX_SRCS:.cpp=.o)
	$(RM) $(DLLS:%=%.so) $(EXES:%=%.so) $(EXES:%.exe=%)

$(SUBDIRS:%=%/__clean__): dummy
	cd `dirname $@` && $(MAKE) clean

$(EXTRASUBDIRS:%=%/__clean__): dummy
	-cd `dirname $@` && $(RM) $(CLEAN_FILES)

### Target specific build rules
DEFLIB = $(LIBRARY_PATH) $(LIBRARIES) $(DLL_PATH)

$(dmsw_exe_MODULE).so: $(dmsw_exe_OBJS)
	$(CC) $(dmsw_exe_LDFLAGS) -o $@ $(dmsw_exe_OBJS) $(dmsw_exe_LIBRARY_PATH) $(DEFLIB) $(dmsw_exe_DLLS:%=-l%) $(dmsw_exe_LIBRARIES:%=-l%)




More information about the wine-devel mailing list