[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Lua forwarding DLL
- From: Shmuel Zeigerman <shmuz@...>
- Date: Wed, 23 May 2007 21:01:37 +0200
Jerome Vuarand wrote:
Shmuel Zeigerman wrote:
I suppose it may be due to old versions of GCC (3.4.2) and LD
(2.15.91) that are installed on my system.
I used MinGW 5.0.2 which comes with gcc 3.4.4, ld 2.16.91. I used my
script with the following command line:
After I upgraded (gcc 4.1.2, ld 2.16.91), the DLL was built successfully
(ld did the trick!)
But alas, when I execute an old lua.exe that depends on lua51.dll,
I get the following error:
> lua.exe - Entry Point Not Found
> The procedure entry point lua5.1.luaL_checkstack could not
> be located in the dynamic link library lua51.dll.
See the dump below:
Turbo Dump Version 5.0.16.12 Copyright (c) 1988, 2000 Inprise Corporation
Display of File LUA51.DLL
Old Executable Header
DOS File Size 1A00h ( 6656. )
Load Image Size 450h ( 1104. )
Relocation Table entry count 0000h ( 0. )
Relocation Table address 0040h ( 64. )
Size of header record (in paragraphs) 0004h ( 4. )
Minimum Memory Requirement (in paragraphs) 0000h ( 0. )
Maximum Memory Requirement (in paragraphs) FFFFh ( 65535. )
File load checksum 0000h ( 0. )
Overlay Number 0000h ( 0. )
Initial Stack Segment (SS:SP) 0000:00B8
Program Entry Point (CS:IP) 0000:0000
Portable Executable (PE) File
Header base: 00000080
CPU type 80386
Flags 230F [ fixed executable backwards 32bit nodebug
library ]
DLL flags 0000 [ ]
Linker Version 2.38
Time stamp 46548A8F : Wed May 23 20:40:15 2007
O/S Version 4.0
User Version 1.0
Subsystem Version 4.0
Subsystem 0003 [ Windows character ]
Object count 00000003
Symbols offset 00000000
Symbols count 00000000
Optional header size 00E0
Magic # 10B
Code size 00000200
Init Data size 00001600
Uninit Data size 00000000
Entry RVA 00001000
Image base 10000000
Code base 00001000
Data base 00000000
Object/File align 00001000/00000200
Reserved 00000000
Image size 00005000
Header size 00000200
Checksum 00004CAB
Stack reserve/commit 00200000/00001000
Heap reserve/commit 00100000/00001000
Number interesting RVAs 00000010
Name RVA Size
------------------ -------- --------
Exports 00002000 000013D8
Imports 00004000 00000014
Resources 00000000 00000000
Exceptions 00000000 00000000
Security 00000000 00000000
Fixups 00000000 00000000
Debug 00000000 00000000
Description 00000000 00000000
Global Ptr 00000000 00000000
TLS 00000000 00000000
Callbacks 00000000 00000000
Bound Imports 00000000 00000000
Import Addr Table 00000000 00000000
Delayed Imports 00000000 00000000
COM Runtime 00000000 00000000
reserved 00000000 00000000
Object table:
# Name VirtSize RVA PhysSize Phys off Flags
-- -------- -------- -------- -------- -------- --------
01 .text 00000010 00001000 00000200 00000200 60000020 [CER]
02 .edata 000013D8 00002000 00001400 00000400 40000040 [IR]
03 .idata 00000014 00004000 00000200 00001800 C0000040 [IRW]
Key to section flags:
C - contains code
E - executable
I - contains initialized data
R - readable
W - writeable
******************************************************************************
Section: Import
ImportLookUpTblRVA:00000000
Time Stamp: 00000000
Forwarder Chain: 00000000 (index of first forwarder reference)
******************************************************************************
Section: Exports
Flags: 00000000
Time Stamp: 46548A8F : Wed May 23 20:40:15 2007
Major Version: 0000
Minor Version: 0000
Exports from lua51.dll
114 exported name(s), 114 export addresse(s). Ordinal base is 1.
Sorted by Name:
RVA Ord. Hint Name
-------- ---- ---- ----
000024A6 1 0000 luaL_addlstring => lua5.1.luaL_addlstring
000024CD 2 0001 luaL_addstring => lua5.1.luaL_addstring
000024F2 3 0002 luaL_addvalue => lua5.1.luaL_addvalue
00002515 4 0003 luaL_argerror => lua5.1.luaL_argerror
00002538 5 0004 luaL_buffinit => lua5.1.luaL_buffinit
0000255B 6 0005 luaL_callmeta => lua5.1.luaL_callmeta
0000257E 7 0006 luaL_checkany => lua5.1.luaL_checkany
000025A1 8 0007 luaL_checkinteger => lua5.1.luaL_checkinteger
000025CC 9 0008 luaL_checklstring => lua5.1.luaL_checklstring
000025F7 10 0009 luaL_checknumber => lua5.1.luaL_checknumber
00002620 11 000A luaL_checkoption => lua5.1.luaL_checkoption
00002649 12 000B luaL_checkstack => lua5.1.luaL_checkstack
00002670 13 000C luaL_checktype => lua5.1.luaL_checktype
00002695 14 000D luaL_checkudata => lua5.1.luaL_checkudata
000026BC 15 000E luaL_error => lua5.1.luaL_error
000026D9 16 000F luaL_findtable => lua5.1.luaL_findtable
000026FE 17 0010 luaL_getmetafield => lua5.1.luaL_getmetafield
00002729 18 0011 luaL_gsub => lua5.1.luaL_gsub
00002744 19 0012 luaL_loadbuffer => lua5.1.luaL_loadbuffer
0000276B 20 0013 luaL_loadfile => lua5.1.luaL_loadfile
0000278E 21 0014 luaL_loadstring => lua5.1.luaL_loadstring
000027B5 22 0015 luaL_newmetatable => lua5.1.luaL_newmetatable
000027E0 23 0016 luaL_newstate => lua5.1.luaL_newstate
00002803 24 0017 luaL_openlib => lua5.1.luaL_openlib
00002824 25 0018 luaL_openlibs => lua5.1.luaL_openlibs
00002847 26 0019 luaL_optinteger => lua5.1.luaL_optinteger
0000286E 27 001A luaL_optlstring => lua5.1.luaL_optlstring
00002895 28 001B luaL_optnumber => lua5.1.luaL_optnumber
000028BA 29 001C luaL_prepbuffer => lua5.1.luaL_prepbuffer
000028E1 30 001D luaL_pushresult => lua5.1.luaL_pushresult
00002908 31 001E luaL_ref => lua5.1.luaL_ref
00002921 32 001F luaL_register => lua5.1.luaL_register
00002944 33 0020 luaL_typerror => lua5.1.luaL_typerror
00002967 34 0021 luaL_unref => lua5.1.luaL_unref
00002984 35 0022 luaL_where => lua5.1.luaL_where
000029A1 36 0023 lua_atpanic => lua5.1.lua_atpanic
000029C0 37 0024 lua_call => lua5.1.lua_call
000029D9 38 0025 lua_checkstack => lua5.1.lua_checkstack
000029FE 39 0026 lua_close => lua5.1.lua_close
00002A19 40 0027 lua_concat => lua5.1.lua_concat
00002A36 41 0028 lua_cpcall => lua5.1.lua_cpcall
00002A53 42 0029 lua_createtable => lua5.1.lua_createtable
00002A7A 43 002A lua_dump => lua5.1.lua_dump
00002A93 44 002B lua_equal => lua5.1.lua_equal
00002AAE 45 002C lua_error => lua5.1.lua_error
00002AC9 46 002D lua_gc => lua5.1.lua_gc
00002ADE 47 002E lua_getallocf => lua5.1.lua_getallocf
00002B01 48 002F lua_getfenv => lua5.1.lua_getfenv
00002B20 49 0030 lua_getfield => lua5.1.lua_getfield
00002B41 50 0031 lua_gethook => lua5.1.lua_gethook
00002B60 51 0032 lua_gethookcount => lua5.1.lua_gethookcount
00002B89 52 0033 lua_gethookmask => lua5.1.lua_gethookmask
00002BB0 53 0034 lua_getinfo => lua5.1.lua_getinfo
00002BCF 54 0035 lua_getlocal => lua5.1.lua_getlocal
00002BF0 55 0036 lua_getmetatable => lua5.1.lua_getmetatable
00002C19 56 0037 lua_getstack => lua5.1.lua_getstack
00002C3A 57 0038 lua_gettable => lua5.1.lua_gettable
00002C5B 58 0039 lua_gettop => lua5.1.lua_gettop
00002C78 59 003A lua_getupvalue => lua5.1.lua_getupvalue
00002C9D 60 003B lua_insert => lua5.1.lua_insert
00002CBA 61 003C lua_iscfunction => lua5.1.lua_iscfunction
00002CE1 62 003D lua_isnumber => lua5.1.lua_isnumber
00002D02 63 003E lua_isstring => lua5.1.lua_isstring
00002D23 64 003F lua_isuserdata => lua5.1.lua_isuserdata
00002D48 65 0040 lua_lessthan => lua5.1.lua_lessthan
00002D69 66 0041 lua_load => lua5.1.lua_load
00002D82 67 0042 lua_newstate => lua5.1.lua_newstate
00002DA3 68 0043 lua_newthread => lua5.1.lua_newthread
00002DC6 69 0044 lua_newuserdata => lua5.1.lua_newuserdata
00002DED 70 0045 lua_next => lua5.1.lua_next
00002E06 71 0046 lua_objlen => lua5.1.lua_objlen
00002E23 72 0047 lua_pcall => lua5.1.lua_pcall
00002E3E 73 0048 lua_pushboolean => lua5.1.lua_pushboolean
00002E65 74 0049 lua_pushcclosure => lua5.1.lua_pushcclosure
00002E8E 75 004A lua_pushfstring => lua5.1.lua_pushfstring
00002EB5 76 004B lua_pushinteger => lua5.1.lua_pushinteger
00002EDC 77 004C lua_pushlightuserdata =>
lua5.1.lua_pushlightuserdata
00002F0F 78 004D lua_pushlstring => lua5.1.lua_pushlstring
00002F36 79 004E lua_pushnil => lua5.1.lua_pushnil
00002F55 80 004F lua_pushnumber => lua5.1.lua_pushnumber
00002F7A 81 0050 lua_pushstring => lua5.1.lua_pushstring
00002F9F 82 0051 lua_pushthread => lua5.1.lua_pushthread
00002FC4 83 0052 lua_pushvalue => lua5.1.lua_pushvalue
00002FE7 84 0053 lua_pushvfstring => lua5.1.lua_pushvfstring
00003010 85 0054 lua_rawequal => lua5.1.lua_rawequal
00003031 86 0055 lua_rawget => lua5.1.lua_rawget
0000304E 87 0056 lua_rawgeti => lua5.1.lua_rawgeti
0000306D 88 0057 lua_rawset => lua5.1.lua_rawset
0000308A 89 0058 lua_rawseti => lua5.1.lua_rawseti
000030A9 90 0059 lua_remove => lua5.1.lua_remove
000030C6 91 005A lua_replace => lua5.1.lua_replace
000030E5 92 005B lua_resume => lua5.1.lua_resume
00003102 93 005C lua_setallocf => lua5.1.lua_setallocf
00003125 94 005D lua_setfenv => lua5.1.lua_setfenv
00003144 95 005E lua_setfield => lua5.1.lua_setfield
00003165 96 005F lua_sethook => lua5.1.lua_sethook
00003184 97 0060 lua_setlocal => lua5.1.lua_setlocal
000031A5 98 0061 lua_setmetatable => lua5.1.lua_setmetatable
000031CE 99 0062 lua_settable => lua5.1.lua_settable
000031EF 100 0063 lua_settop => lua5.1.lua_settop
0000320C 101 0064 lua_setupvalue => lua5.1.lua_setupvalue
00003231 102 0065 lua_status => lua5.1.lua_status
0000324E 103 0066 lua_toboolean => lua5.1.lua_toboolean
00003271 104 0067 lua_tocfunction => lua5.1.lua_tocfunction
00003298 105 0068 lua_tointeger => lua5.1.lua_tointeger
000032BB 106 0069 lua_tolstring => lua5.1.lua_tolstring
000032DE 107 006A lua_tonumber => lua5.1.lua_tonumber
000032FF 108 006B lua_topointer => lua5.1.lua_topointer
00003322 109 006C lua_tothread => lua5.1.lua_tothread
00003343 110 006D lua_touserdata => lua5.1.lua_touserdata
00003368 111 006E lua_type => lua5.1.lua_type
00003381 112 006F lua_typename => lua5.1.lua_typename
000033A2 113 0070 lua_xmove => lua5.1.lua_xmove
000033BD 114 0071 lua_yield => lua5.1.lua_yield
--
Shmuel