www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2020/05/01/00:19:09

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Received: by 2002:a05:620a:785:: with SMTP id 5mr661594qka.356.1588305208277;
Thu, 30 Apr 2020 20:53:28 -0700 (PDT)
X-Received: by 2002:a25:cad6:: with SMTP id a205mr3147140ybg.377.1588305208079;
Thu, 30 Apr 2020 20:53:28 -0700 (PDT)
Newsgroups: comp.os.msdos.djgpp
Date: Thu, 30 Apr 2020 20:53:27 -0700 (PDT)
Complaints-To: groups-abuse AT google DOT com
Injection-Info: google-groups.googlegroups.com; posting-host=89.177.32.144; posting-account=Q0wMHAoAAADjYrghh94FTf6YnbpTqZgp
NNTP-Posting-Host: 89.177.32.144
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d2d1f8c8-3eb5-4d0b-a70c-9033b6289b49@googlegroups.com>
Subject: Make 4.3 crash when compiling 86duino example under WXP-NTVDM
From: "RayeR (rayer314 AT gmail DOT com) [via djgpp AT delorie DOT com]" <djgpp AT delorie DOT com>
Injection-Date: Fri, 01 May 2020 03:53:28 +0000
Bytes: 4628
Lines: 108
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

I just found a strange behavior of new make 4.3 when compiling 86duino example under WXP-NTVDM i got crash:

N:\86DUINO.SDK\EXAMPLE>make -v
GNU Make 4.3  (DJGPP port (r1))
Built for i786-pc-msdosdjgpp
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

N:\86DUINO.SDK\EXAMPLE>make
make -C N:\86DUINO.SDK\core
memblockpnxt: memory fouled
Exiting due to signal SIGABRT
Raised at eip=0003b3dc
eax=000d9440 ebx=00000120 ecx=00000000 edx=00000000 esi=000524c8 edi=00000000
ebp=000d94f8 esp=000d9430 program=E:\DJGPP\BIN\make.exe
cs: sel=01ff  base=02b00000  limit=0010ffff
ds: sel=0207  base=02b00000  limit=0010ffff
es: sel=0207  base=02b00000  limit=0010ffff
fs: sel=01d7  base=0000ece0  limit=0000ffff
gs: sel=0217  base=00000000  limit=0010ffff
ss: sel=0207  base=02b00000  limit=0010ffff
App stack: [000daa50..0005aa50]  Exceptn stack: [0005a96c..00058a2c]

Call frame traceback EIPs:
  0x0003b32b
  0x0003b3dc
  0x0002b250
  0x0002b4ac
  0x00025b5e
  0x00026661
  0x0001a8eb
  0x00009f92
  0x0000afe3
  0x0000b290
  0x000058a7
  0x00005d93
  0x00005e5a
  0x0002329b
  0x00023b4b
  0x0001b49e
  0x0001d266
  0x0001d569
  0x000159de
  0x000343e4
make: *** [Makefile:30: libcore.a] Error -1

When I revert to older Make 4.1 (11.7.2015) it compiles without problem.

N:\86DUINO.SDK\EXAMPLE>make -v
GNU Make 4.1  (DJGPP port (r1))
Built for i786-pc-msdosdjgpp
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

N:\86DUINO.SDK\EXAMPLE>make
make -C N:\86DUINO.SDK\core
make.exe[1]: Entering directory 'n:/86duino.sdk/core'
make.exe[1]: Nothing to be done for 'everything'.
make.exe[1]: Leaving directory 'n:/86duino.sdk/core'
gcc -c -w -g -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe
-statics -O1 -DARDUINO=158 -D_86DUINO=210 example.cpp -o example.o -IN:\86DUINO.
SDK\core -IN:\86DUINO.SDK\libraries\TimerOne
gcc -w -Wl,--gc-sections -O1 -Wl,--start-group example.o N:\86DUINO.SDK\core\lib
core.a N:\86DUINO.SDK\core\86Duino_Init.o -lTimerOne  -lstdcxx -Wl,--end-group -
o 86DUINO.exe -LN:\86DUINO.SDK\libraries\TimerOne

The Makefile (compiling just one example.cpp):

CC := gcc
CFLAGS := -c -w -g -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -O1 -DARDUINO=158 -D_86DUINO=210
LINK_FLAGS := -w -Wl,--gc-sections -O1

LIB_PATH := $(86DUINO_DIR)\core
LIB_INCLUDE := -I$(86DUINO_DIR)\core
LIB := libcore.a
INIT_OBJS := 86Duino_Init.o

THIRD_LIB_NAME := TimerOne
THIRD_LIB_INCLUDE := $(addprefix -I$(86DUINO_DIR)\libraries\,$(THIRD_LIB_NAME))
THIRD_LIB_PATH := $(addprefix -L$(86DUINO_DIR)\libraries\,$(THIRD_LIB_NAME))
THIRD_LIB := $(addprefix -l,$(THIRD_LIB_NAME))
EXTEN_LIB :=

SRCS := $(wildcard *.cpp)
OBJS := $(patsubst %cpp,%o,$(SRCS))
TARGETS := 86DUINO.exe

.PHONY : everything clean all $(LIB)

everything: $(LIB) $(TARGETS)

clean:
	rm $(OBJS) $(TARGETS)

all: clean everything

$(LIB):
	make -C $(LIB_PATH)

$(TARGETS): $(OBJS) $(LIB_PATH)\$(LIB) $(LIB_PATH)\$(INIT_OBJS)
	$(CC) $(LINK_FLAGS) -Wl,--start-group $^ $(THIRD_LIB) $(EXTEN_LIB) -lstdcxx -Wl,--end-group -o $@ $(THIRD_LIB_PATH) 

%.o: %.cpp
	$(CC) $(CFLAGS) $< -o $@ $(LIB_INCLUDE) $(THIRD_LIB_INCLUDE)

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019