News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

GoAsm 0.55.14 and GoLink 26.5

Started by jorgon, November 14, 2006, 07:07:10 PM

Previous topic - Next topic

jorgon

The latest version of GoAsm available from here:-

  • sorts out recently reported bugs
  • adds automatic structure alignment in Win32 (this was already happening when using local data)
  • adds support for #dynamiclinkfile which allows you to specify in the asm source a dll/ocx/exe/drv file which exports functions used in your program, instead of in the linker's command line or command file (you need GoLink 0.26.5 for this to work)

Author of the "Go" tools (GoAsm, GoLink, GoRC, GoBug)

1rDirEctoALgran0

; Hi, Jeremy
; this new smart keyword have its bug...

;#DYNAMICLINKFILE "USER32.DLL" is OK
#DYNAMICLINKFILE USER32.DLL

   CODE
Start:   INVOKE MessageBoxA,0,"bug...","What is happen ?",0
   RET

/*

GoLink.Exe Version 0.26.5 - Copyright Jeremy Gordon 2002/6-JG@JGnet.co.uk

Error!
Could not open an input file (`USER32.DLL)
Output file not made

*/

; P.S. : If you want to see my personal bug collection on GoDevTool, say it to me... :P

jorgon

Hi 1rDirEctoALgran0

I tried to replicate this but couldn't.

Would you mind checking your source to see if you have a nasty single opening quote lurking just before USER32.DLL?  In some editors a single opening quote appears very faintly.

If this is not the case, would you mind either posting or sending to me your source so that I can check out this bug directly?  Thanks.
Author of the "Go" tools (GoAsm, GoLink, GoRC, GoBug)

1rDirEctoALgran0

Hi Jeremy,

try the source "Inutile.ASM" simply like that :
goasm inutile.asm
golink inutile.obj

GoLink.Exe Version 0.26.5 - Copyright Jeremy Gordon 2002/6-JG@JGnet.co.uk

Error!
Could not open an input file (`USER32.DLL)
Output file not made

What is wrong ?

Patrick

Hint : The ` character (0x60) is not in my source but it is present in the obj file.


[attachment deleted by admin]

jorgon

QuoteWhat is wrong ?

Here is an exact report.

Because of the #dynamiclinkfile declaration, the string USER32.DLL was properly in the .drectve section material in the object file.  But since your file had no data section and no exports, the byte immediately before the string was value 60h which was what appeared as the `character in GoLink's error message.  In fact this byte was the top byte in the CHARACTERISTICS dword for the CODE section (characteristics EXECUTE and READ).  When GoLink was parsing the USER32.DLL filename it was unfortunately going back beyond the beginning of the .drectve material, and stopping on the 60h byte by mistake.  The problem did not appear if the sections were in a different order!

Thanks very much for reporting this bug and for posting your file.  The fix is here (GoLink Version 26.6).
Author of the "Go" tools (GoAsm, GoLink, GoRC, GoBug)