Terraspace / UASM

UASM - Macro Assembler
http://www.terraspace.co.uk/uasm.html
Other
220 stars 49 forks source link

doesn't build on linux with conflicting types #112

Closed alexge233 closed 4 years ago

alexge233 commented 5 years ago

Hi, I'm trying to build on Linux amd64 and I get two different compilation errors:

codegenv2.c:1170:5: error: conflicting types for ‘BuildMemoryEncoding’
 int BuildMemoryEncoding(unsigned char* pmodRM, unsigned char* pSIB, unsigned char* pREX, bool* needModRM, bool* needSIB,
     ^~~~~~~~~~~~~~~~~~~
In file included from codegenv2.c:5:0:
H/codegenv2.h:391:15: note: previous declaration of ‘BuildMemoryEncoding’ was here
 int           BuildMemoryEncoding(unsigned char* pmodRM, unsigned char* pSIB, unsigned char* pREX, bool* needRM, bool* need

and

codegenv2.c:1655:15: error: too many arguments to function ‘BuildREX’
    rexByte |= BuildREX(rexByte, matchedInstr, opExpr, FALSE);           /* Modify the REX prefix for non-memory operands/sizing */

This is using master branch.

john-terraspace commented 5 years ago

Try the 2.49.1 branch, I’m still in the process of cleaning up and updating master. I had no issues building 2.49 on Linux.

From: Alex Giokas notifications@github.com Sent: 31 July 2019 16:41 To: Terraspace/UASM UASM@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [Terraspace/UASM] doesn't build on linux with conflicting types (#112)

Hi, I'm trying to build on Linux amd64 and I get two different compilation errors:

codegenv2.c:1170:5: error: conflicting types for ‘BuildMemoryEncoding’

int BuildMemoryEncoding(unsigned char pmodRM, unsigned char pSIB, unsigned char pREX, bool needModRM, bool* needSIB,

 ^~~~~~~~~~~~~~~~~~~

In file included from codegenv2.c:5:0:

H/codegenv2.h:391:15: note: previous declaration of ‘BuildMemoryEncoding’ was here

int BuildMemoryEncoding(unsigned char pmodRM, unsigned char pSIB, unsigned char pREX, bool needRM, bool* need

and

codegenv2.c:1655:15: error: too many arguments to function ‘BuildREX’

rexByte |= BuildREX(rexByte, matchedInstr, opExpr, FALSE);           /* Modify the REX prefix for non-memory operands/sizing */

This is using master branch.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/112?email_source=notifications&email_token=AEAZAVFZMV3HLH5UQ7FEQX3QCGXCHA5CNFSM4IIIBK42YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HCTIYCQ , or mute the thread https://github.com/notifications/unsubscribe-auth/AEAZAVFY3KOLSO4YXNHRZYDQCGXCHANCNFSM4IIIBK4Q .

alexge233 commented 5 years ago

Hi @john-terraspace I've just tried, also tried the final one, seem to be getting a different error of multiple definitions on linking:

gcc -D __UNIX__ GccUnixR/main.o GccUnixR/apiemu.o GccUnixR/orgfixup.o GccUnixR/assemble.o GccUnixR/assume.o GccUnixR/atofloat.o GccUnixR/backptch.o GccUnixR/bin.o GccUnixR/branch.o GccUnixR/cmdline.o GccUnixR/codegen.o GccUnixR/codegenv2.o GccUnixR/coff.o GccUnixR/condasm.o GccUnixR/context.o GccUnixR/cpumodel.o GccUnixR/data.o GccUnixR/dbgcv.o GccUnixR/directiv.o GccUnixR/elf.o GccUnixR/end.o GccUnixR/equate.o GccUnixR/errmsg.o GccUnixR/expans.o GccUnixR/expreval.o GccUnixR/extern.o GccUnixR/fastpass.o GccUnixR/fixup.o GccUnixR/fpfixup.o GccUnixR/hll.o GccUnixR/input.o GccUnixR/invoke.o GccUnixR/label.o GccUnixR/linnum.o GccUnixR/listing.o GccUnixR/loop.o GccUnixR/lqueue.o GccUnixR/ltype.o GccUnixR/macho64.o GccUnixR/macro.o GccUnixR/macrolib.o GccUnixR/mangle.o GccUnixR/memalloc.o GccUnixR/msgtext.o GccUnixR/omf.o GccUnixR/omffixup.o GccUnixR/omfint.o GccUnixR/option.o GccUnixR/parser.o GccUnixR/posndir.o GccUnixR/preproc.o GccUnixR/proc.o GccUnixR/queue.o GccUnixR/reswords.o GccUnixR/safeseh.o GccUnixR/segment.o GccUnixR/simd.o GccUnixR/simsegm.o GccUnixR/string.o GccUnixR/symbols.o GccUnixR/tbyte.o GccUnixR/pseudoFilter.o GccUnixR/tokenize.o GccUnixR/types.o -s -o GccUnixR/uasm -Wl,-Map,GccUnixR/uasm.map
GccUnixR/coff.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/condasm.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/context.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/cpumodel.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/dbgcv.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/directiv.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/elf.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/end.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/equate.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/errmsg.o:(.bss+0x1): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/expans.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/extern.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/fastpass.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/fixup.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/fpfixup.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/hll.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/input.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/label.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/linnum.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/listing.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/loop.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/lqueue.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/ltype.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/macho64.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/macro.o:(.bss+0x1): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/mangle.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/memalloc.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/omf.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/omffixup.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/omfint.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/posndir.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/reswords.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/safeseh.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/segment.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/simd.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/string.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/symbols.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/tbyte.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
GccUnixR/types.o:(.bss+0x0): multiple definition of `MODULEARCH'
GccUnixR/main.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
GccUnix.mak:43: recipe for target 'GccUnixR/uasm' failed
make: *** [GccUnixR/uasm] Error 1
john-terraspace commented 5 years ago

Here is the makefile I use on Linux (Ubuntu 18 64bit)…

This makefile creates the Uasm Elf binary for Linux/FreeBSD.

TARGET1=uasm

ifndef DEBUG

DEBUG=0

endif

inc_dirs = -IH

cflags stuff

ifeq ($(DEBUG),0)

extra_c_flags = -DNDEBUG -O2 -funsigned-char -Wwrite-strings

OUTD=GccUnixR

else

extra_c_flags = -DDEBUG_OUT -g

OUTD=GccUnixD

endif

c_flags =-D UNIX $(extra_c_flags)

CC = gcc

.SUFFIXES:

.SUFFIXES: .c .o

include gccmod.inc

.c.o:

$(CC) -c $(inc_dirs) $(c_flags) -o $(OUTD)/$*.o $<

$(OUTD)/%.o: %.c

            $(CC) -D __UNIX__ -c $(inc_dirs) $(c_flags) -o $(OUTD)/$*.o $<

all: $(OUTD) $(OUTD)/$(TARGET1)

$(OUTD):

            mkdir $(OUTD)

$(OUTD)/$(TARGET1) : $(OUTD)/main.o $(proj_obj)

ifeq ($(DEBUG),0)

            $(CC) -D __UNIX__ $(OUTD)/main.o $(proj_obj) -s -o $@ -Wl,-Map,$(OUTD)/$(TARGET1).map

else

            $(CC) -D __UNIX__ $(OUTD)/main.o $(proj_obj) -o $@ -Wl,-Map,$(OUTD)/$(TARGET1).map

endif

$(OUTD)/msgtext.o: msgtext.c H/msgdef.h

            $(CC) -D __UNIX__ -c $(inc_dirs) $(c_flags) -o $*.o msgtext.c

$(OUTD)/reswords.o: reswords.c H/instruct.h H/special.h H/directve.h H/opndcls.h H/instravx.h

            $(CC) -D __UNIX__ -c $(inc_dirs) $(c_flags) -o $*.o reswords.c

clean:

            rm $(OUTD)/$(TARGET1)

            rm $(OUTD)/*.o

            rm $(OUTD)/*.map

That builds without issue for me.

I’m using:

gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0

Copyright (C) 2017 Free Software Foundation, Inc.

Gccmod.inc as follows:

proj_obj = \

$(OUTD)/apiemu.o \

$(OUTD)/orgfixup.o \

$(OUTD)/assemble.o \

$(OUTD)/assume.o \

$(OUTD)/atofloat.o \

$(OUTD)/backptch.o \

$(OUTD)/bin.o \

$(OUTD)/branch.o \

$(OUTD)/cmdline.o \

$(OUTD)/codegen.o \

$(OUTD)/codegenv2.o \

$(OUTD)/coff.o \

$(OUTD)/condasm.o \

$(OUTD)/context.o \

$(OUTD)/cpumodel.o \

$(OUTD)/data.o \

$(OUTD)/dbgcv.o \

$(OUTD)/directiv.o \

$(OUTD)/elf.o \

$(OUTD)/end.o \

$(OUTD)/equate.o \

$(OUTD)/errmsg.o \

$(OUTD)/expans.o \

$(OUTD)/expreval.o \

$(OUTD)/extern.o \

$(OUTD)/fastpass.o \

$(OUTD)/fixup.o \

$(OUTD)/fpfixup.o \

$(OUTD)/hll.o \

$(OUTD)/input.o \

$(OUTD)/invoke.o \

$(OUTD)/label.o \

$(OUTD)/linnum.o \

$(OUTD)/listing.o \

$(OUTD)/loop.o \

$(OUTD)/lqueue.o \

$(OUTD)/ltype.o \

$(OUTD)/macho64.o \

$(OUTD)/macro.o \

$(OUTD)/macrolib.o \

$(OUTD)/mangle.o \

$(OUTD)/memalloc.o \

$(OUTD)/msgtext.o \

$(OUTD)/omf.o \

$(OUTD)/omffixup.o \

$(OUTD)/omfint.o \

$(OUTD)/option.o \

$(OUTD)/parser.o \

$(OUTD)/posndir.o \

$(OUTD)/preproc.o \

$(OUTD)/proc.o \

$(OUTD)/queue.o \

$(OUTD)/reswords.o \

$(OUTD)/safeseh.o \

$(OUTD)/segment.o \

$(OUTD)/simd.o \

$(OUTD)/simsegm.o \

$(OUTD)/string.o \

$(OUTD)/symbols.o \

$(OUTD)/tbyte.o \

$(OUTD)/pseudoFilter.o \

$(OUTD)/tokenize.o \

$(OUTD)/types.o

From: Alex Giokas notifications@github.com Sent: 31 July 2019 18:22 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Mention mention@noreply.github.com Subject: Re: [Terraspace/UASM] doesn't build on linux with conflicting types (#112)

Hi @john-terraspace https://github.com/john-terraspace I've just tried, also tried the final one, seem to be getting a different error of multiple definitions on linking:

gcc -D UNIX GccUnixR/main.o GccUnixR/apiemu.o GccUnixR/orgfixup.o GccUnixR/assemble.o GccUnixR/assume.o GccUnixR/atofloat.o GccUnixR/backptch.o GccUnixR/bin.o GccUnixR/branch.o GccUnixR/cmdline.o GccUnixR/codegen.o GccUnixR/codegenv2.o GccUnixR/coff.o GccUnixR/condasm.o GccUnixR/context.o GccUnixR/cpumodel.o GccUnixR/data.o GccUnixR/dbgcv.o GccUnixR/directiv.o GccUnixR/elf.o GccUnixR/end.o GccUnixR/equate.o GccUnixR/errmsg.o GccUnixR/expans.o GccUnixR/expreval.o GccUnixR/extern.o GccUnixR/fastpass.o GccUnixR/fixup.o GccUnixR/fpfixup.o GccUnixR/hll.o GccUnixR/input.o GccUnixR/invoke.o GccUnixR/label.o GccUnixR/linnum.o GccUnixR/listing.o GccUnixR/loop.o GccUnixR/lqueue.o GccUnixR/ltype.o GccUnixR/macho64.o GccUnixR/macro.o GccUnixR/macrolib.o GccUnixR/mangle.o GccUnixR/memalloc.o GccUnixR/msgtext.o GccUnixR/omf.o GccUnixR/omffixup.o GccUnixR/omfint.o GccUnixR/option.o GccUnixR/parser.o GccUnixR/posndir.o GccUnixR/preproc.o GccUnixR/proc.o GccUnixR/queue.o GccUnixR/reswords.o GccUnixR/safeseh.o GccUnixR/segment.o GccUnixR/simd.o GccUnixR/simsegm.o GccUnixR/string.o GccUnixR/symbols.o GccUnixR/tbyte.o GccUnixR/pseudoFilter.o GccUnixR/tokenize.o GccUnixR/types.o -s -o GccUnixR/uasm -Wl,-Map,GccUnixR/uasm.map GccUnixR/coff.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/condasm.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/context.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/cpumodel.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/dbgcv.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/directiv.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/elf.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/end.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/equate.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/errmsg.o:(.bss+0x1): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/expans.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/extern.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/fastpass.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/fixup.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/fpfixup.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/hll.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/input.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/label.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/linnum.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/listing.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/loop.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/lqueue.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/ltype.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/macho64.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/macro.o:(.bss+0x1): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/mangle.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/memalloc.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/omf.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/omffixup.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/omfint.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/posndir.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/reswords.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/safeseh.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/segment.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/simd.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/string.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/symbols.o:(.bss+0x0): multiple definition of MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/tbyte.o:(.bss+0x0): multiple definition ofMODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here GccUnixR/types.o:(.bss+0x0): multiple definition of `MODULEARCH' GccUnixR/main.o:(.bss+0x0): first defined here collect2: error: ld returned 1 exit status GccUnix.mak:43: recipe for target 'GccUnixR/uasm' failed make: *** [GccUnixR/uasm] Error 1

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/112?email_source=notifications&email_token=AEAZAVBSL7OODNV5P3MBYBLQCHC4ZA5CNFSM4IIIBK42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3H6U5A#issuecomment-516942452 , or mute the thread https://github.com/notifications/unsubscribe-auth/AEAZAVBUHB3XBVPG7G5Y7GTQCHC4ZANCNFSM4IIIBK4Q .

alexge233 commented 5 years ago

Hi @john-terraspace is this the same as the GccUnix.mak makefile? Could you please format it, it has illegal characters in it atm?

john-terraspace commented 5 years ago

I don’t believe so. I think there is one in the repo NIX64.mak which should be the same. I will replace them with one single one that works in 2.50

From: Alex Giokas notifications@github.com Sent: 01 August 2019 16:35 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Mention mention@noreply.github.com Subject: Re: [Terraspace/UASM] doesn't build on linux with conflicting types (#112)

Hi @john-terraspace https://github.com/john-terraspace is this the same as the GccUnix.mak makefile? Could you please format it, it has illegal characters in it atm?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/112?email_source=notifications&email_token=AEAZAVEOE5IPNGFSBO6T65LQCL7AVA5CNFSM4IIIBK42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3K7UCA#issuecomment-517339656 , or mute the thread https://github.com/notifications/unsubscribe-auth/AEAZAVHETCNSCBWN3Z7Y62LQCL7AVANCNFSM4IIIBK4Q .

john-terraspace commented 5 years ago

I’ve updated the 2.50 branch with new makefiles. GccLinux64.mak + gccmod.inc are as I use. Try that.

From: Alex Giokas notifications@github.com Sent: 01 August 2019 16:35 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Mention mention@noreply.github.com Subject: Re: [Terraspace/UASM] doesn't build on linux with conflicting types (#112)

Hi @john-terraspace https://github.com/john-terraspace is this the same as the GccUnix.mak makefile? Could you please format it, it has illegal characters in it atm?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/112?email_source=notifications&email_token=AEAZAVEOE5IPNGFSBO6T65LQCL7AVA5CNFSM4IIIBK42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3K7UCA#issuecomment-517339656 , or mute the thread https://github.com/notifications/unsubscribe-auth/AEAZAVHETCNSCBWN3Z7Y62LQCL7AVANCNFSM4IIIBK4Q .

alexge233 commented 5 years ago

Hi @john-terraspace which makefile should I use with 2.50? The gccLinux64.mak?

john-terraspace commented 5 years ago

Hi,

Yep, that’s the one I’m using and it works well.

From: Alex Giokas notifications@github.com Sent: 08 August 2019 13:26 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Mention mention@noreply.github.com Subject: Re: [Terraspace/UASM] doesn't build on linux with conflicting types (#112)

Hi @john-terraspace https://github.com/john-terraspace which makefile should I use with 2.50? The gccLinux64.mak?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/112?email_source=notifications&email_token=AEAZAVEEIMV3PDH2LWRJ3Y3QDQGF3A5CNFSM4IIIBK42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD33OF3A#issuecomment-519496428 , or mute the thread https://github.com/notifications/unsubscribe-auth/AEAZAVCBECKOV7PVSTRRPB3QDQGF3ANCNFSM4IIIBK4Q .

tastewar commented 5 years ago

I hope you will pardon my ignorance here, but I have cloned the project in git, switched branches to v2.50, and pull'd. I think that went fine since I have both the files you mention above, gccLinux64.mak and gccmod.inc. When I execute

make gccLinux64.mak

I get an error:

Makefile:20: *** missing separator. Stop.

It's likely I'm doing something foolish, but I'm doing all this on Linux, and I am using GNU Make 4.1

As I understand it, that's usually a spaces vs. tabs issue, but I haven't touched the makefile, nor do I see lines with leading spaces on or prior to line 20, and it would appear that the file does generally use tabs at the beginning of lines (didn't check all of them)

Thanks for any help!

john-terraspace commented 5 years ago

Try rename the file to just Makefile and run “make” without any arguments, that is how I have it setup on Linux, it shouldn’t make any difference but worth a shot.

From: Tom Stewart notifications@github.com Sent: 26 August 2019 16:39 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Mention mention@noreply.github.com Subject: Re: [Terraspace/UASM] doesn't build on linux with conflicting types (#112)

I hope you will pardon my ignorance here, but I have cloned the project in git, switched branches to v2.50, and pull'd. I think that went fine since I have both the files you mention above, gccLinux64.mak and gccmod.inc. When I execute

make gccLinux64.mak

I get an error:

Makefile:20: *** missing separator. Stop.

It's likely I'm doing something foolish, but I'm doing all this on Linux, and I am using GNU Make 4.1

As I understand it, that's usually a spaces vs. tabs issue, but I haven't touched the makefile, nor do I see lines with leading spaces on or prior to line 20, and it would appear that the file does generally use tabs at the beginning of lines (didn't check all of them)

Thanks for any help!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/112?email_source=notifications&email_token=AEAZAVHGUUWPY3O42K5L2JLQGP2J7A5CNFSM4IIIBK42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5EYCDI#issuecomment-524910861 , or mute the thread https://github.com/notifications/unsubscribe-auth/AEAZAVGGOFT7EKWZFPMROVLQGP2J7ANCNFSM4IIIBK4Q .

tastewar commented 5 years ago

Thank you. As I thought, it was something foolish, and your solution helped me to figure it out. Of course, the argument to make is the target, so to get it to process a different input file, the command is:

make --file=gccLinux64.mak

That did it as well.

john-terraspace commented 5 years ago

Ah.. yep that would be it 😊 I seldom re-configure my Linux VM, so I tend for forget how it’s setup until I switch it on to build Uasm !

Let me know if anything else comes up. I should have the final few commits to 2.50 done in the next few days then it should be complete and we can start looking into the whole PIC/PIE or.. “the bog of eternal stench” as I prefer to call it !

From: Tom Stewart notifications@github.com Sent: 26 August 2019 18:22 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Mention mention@noreply.github.com Subject: Re: [Terraspace/UASM] doesn't build on linux with conflicting types (#112)

Thank you. As I thought, it was something foolish, and your solution helped me to figure it out. Of course, the argument to make is the target, so to get it to process a different input file, the command is:

make --file=gccLinux64.mak

That did it as well.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/112?email_source=notifications&email_token=AEAZAVE4DDNTHNMSQYERJW3QGQGJVA5CNFSM4IIIBK42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5FBHEI#issuecomment-524948369 , or mute the thread https://github.com/notifications/unsubscribe-auth/AEAZAVDIGW3KXNO2E5CD5LDQGQGJVANCNFSM4IIIBK4Q .

yecril71pl commented 4 years ago

I hope you will pardon my ignorance here, but I have cloned the project in git, switched branches to v2.50, and pull'd. I think that went fine since I have both the files you mention above, gccLinux64.mak and gccmod.inc. When I execute

make gccLinux64.mak

I get an error:

Makefile:20: *** missing separator. Stop.

make -fgccLinux64.mak </dev/null
john-terraspace commented 4 years ago

Have you tried with a space? make -f gccLinux64.mak That normally works for me. The error looks like it's trying to use the default file.

yecril71pl commented 4 years ago

Well, this has worked, as you can see yourself. But I really dislike the warnings; the sheer number of them makes it hard to view the build log. I would prefer fixing them to muting them.