lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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