POLINK wont link has to revert to MSLINK

Started by daydreamer, July 16, 2006, 03:41:58 AM

Previous topic - Next topic

daydreamer

I appreciate POLINK, so thats why I am using POLINK as my standard linker with masm, it suddenly wont link and gives error messages, I replace it with MSLINK and it links no problem


hutch--

Magnus,

What is the problem that won't link ? Many of us use POLINK and if there is a problem it would be useful for Pelle to know about.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

daydreamer

Quote from: hutch-- on July 16, 2006, 05:12:49 AM
Magnus,

What is the problem that won't link ? Many of us use POLINK and if there is a problem it would be useful for Pelle to know about.
I have used POLINK for very long now, I am also confused why it suddenly starts to generate errormessage
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

Assembling: C:\masm32\d3d9ex\test6import.asm
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'ScalarLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'SIMDMatrix' är definierad flera gånger.
POLINK: fel: Symbolen 'TransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'PostTransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'TransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'ScalarLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'SIMDMatrix' är definierad flera gånger.
POLINK: fel: Symbolen 'TransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'PostTransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcPrologue' är definierad flera gånger.
POLINK: fel: Symbolen 'ScalarLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'SIMDMatrix' är definierad flera gånger.
POLINK: fel: Symbolen 'TransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'PostTransformLoop' är definierad flera gånger.
POLINK: fel: Symbolen 'ProcEpilog' är definierad flera gånger.
POLINK: fel: Symbolen 'exception' är definierad flera gånger.
POLINK: fel: Symbolen 'ending' är definierad flera gånger.
POLINK: fel: Symbolen 'x5' är definierad flera gånger.
POLINK: fel: Symbolen 'x7' är definierad flera gånger.
POLINK: fel: Symbolen 'ending' är definierad flera gånger.
POLINK: fel: Symbolen 'x5' är definierad flera gånger.
POLINK: fel: Symbolen 'x7' är definierad flera gånger.
POLINK: fel: Symbolen 'ending' är definierad flera gånger.
_
Link error
Tryck på en valfri tangent för att fortsätta...

I started to include a couple of .inc files with PROC's inside them and suddenly I saw this problem
they are last on the list, because I need to have reference to api calls for filehandling /memoryreserving, because I included .obj fileimporter

PBrennick

If I have read the error messages correctly, you are redefining some variables.  Ordinarily this conflict would be caught by the assembler.  You are running into this problem because you are bypassing the assembler by creating the obj files separately so polink must do the dirty work.  polink finds this type of problem because it requires better programming habits.  It is not as forgiving as link is.  In this case polink is doing a better job because it is not allowing you to create an exe that could crash your system.  Stick with polink and correct the errors.  :U

Also, use the assembler to test assemble all the .asm files (*.asm) because you will then get line numbers.  If you are mixing C with assembly which is the only reason to do it the way you are doing it, have fun.

Paul
The GeneSys Project is available from:
The Repository or My crappy website

daydreamer

Quote from: PBrennick on July 16, 2006, 08:40:35 PM
If I have read the error messages correctly, you are redefining some variables.  Ordinarily this conflict would be caught by the assembler.  You are running into this problem because you are bypassing the assembler by creating the obj files separately so polink must do the dirty work.  polink finds this type of problem because it requires better programming habits.  It is not as forgiving as link is.  In this case polink is doing a better job because it is not allowing you to create an exe that could crash your system.  Stick with polink and correct the errors.  :U

Also, use the assembler to test assemble all the .asm files (*.asm) because you will then get line numbers.  If you are mixing C with assembly which is the only reason to do it the way you are doing it, have fun.

Paul

not as you think, this is an ordinary assemble&link from Qeditor
code is organized into one .asm file and several .inc files
this is not my procedures and variables, they are somewhere in included libs
as I get unusual big .exe, I suspect somewhere in my includes links same libs several times (1mb compared to around 300kb)
so that can explain multiple instances of proc's /variables

for nonswedes
är definierad flera gånger = is defined several times


hutch--

Magnus,

What may be the trick to track it down is write duplicate guards in the include files so that if they are duplicated, you get a warning. The method used in the MASM32 include file should do the job for you and it is simple enough to impliment.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

japheth


POLINK has several "weaknesses" (or bugs). This one I'm familiar with (if I translate the messages correctly). Try if option "/FORCE:MULTIPLE" makes the errors disappear.