Hi Mike -- On 11/3/2017 7:14 PM, Mike Larkin wrote: > On Fri, Nov 03, 2017 at 11:25:46AM -0400, Brian Callahan wrote: >> Hi ports -- >> >> The attached works for me to re-enable lang/freebasic on i386. Can anyone >> else give this a spin? >> >> ~Brian >> > I think you already committed this, but to close the loop, I tested this on > an i386 vmm(4) VM and it works fine. It needs some machinations around paths > to find -lgcc and cc1 but if you do all that it seems to do what is expected.
Thanks for this. Are you using lld for the linker? I tried to get the machinations to just work(TM) and thought I caught them all but happy to test out things to make it better, of course. ~Brian > -ml > > >> Index: Makefile >> =================================================================== >> RCS file: /cvs/ports/lang/freebasic/Makefile,v >> retrieving revision 1.2 >> diff -u -p -u -p -r1.2 Makefile >> --- Makefile 27 Oct 2017 20:41:47 -0000 1.2 >> +++ Makefile 28 Oct 2017 23:52:28 -0000 >> @@ -1,8 +1,6 @@ >> # $OpenBSD: Makefile,v 1.2 2017/10/27 20:41:47 bcallah Exp $ >> >> -BROKEN-i386 = bad bootstrap >> - >> -# All they seem to support. >> +# May also support aarch64 and arm? >> ONLY_FOR_ARCHS = amd64 i386 >> >> V = 1.05.0 >> Index: patches/patch-makefile >> =================================================================== >> RCS file: /cvs/ports/lang/freebasic/patches/patch-makefile,v >> retrieving revision 1.1.1.1 >> diff -u -p -u -p -r1.1.1.1 patch-makefile >> --- patches/patch-makefile 23 Oct 2017 21:46:58 -0000 1.1.1.1 >> +++ patches/patch-makefile 28 Oct 2017 23:52:28 -0000 >> @@ -6,7 +6,17 @@ Keep tendrils here to make generating fu >> Index: makefile >> --- makefile.orig >> +++ makefile >> -@@ -393,7 +393,8 @@ endif >> +@@ -295,9 +295,7 @@ endif >> + # ENABLE_PIC for non-x86 Linux etc. (for every system where we need >> separate >> + # -fPIC versions of FB libs besides the normal ones) >> + ifneq ($(filter freebsd linux netbsd openbsd solaris,$(TARGET_OS)),) >> +- ifneq ($(TARGET_ARCH),x86) >> + ENABLE_PIC := YesPlease >> +- endif >> + endif >> + >> + ifneq ($(filter cygwin dos win32,$(TARGET_OS)),) >> +@@ -393,7 +391,8 @@ endif >> >> ALLFBCFLAGS += -e -m fbc -w pedantic >> ALLFBLFLAGS += -e -m fbc -w pedantic >> @@ -16,7 +26,7 @@ Index: makefile >> >> ifeq ($(TARGET_OS),xbox) >> ifeq ($(OPENXDK),) >> -@@ -1050,32 +1051,16 @@ FBBOOTSTRAPTITLE := $(FBSOURCETITLE)-bootstrap >> +@@ -1050,32 +1049,16 @@ FBBOOTSTRAPTITLE := $(FBSOURCETITLE)-bootstrap >> bootstrap-dist: >> # Precompile fbc sources for various targets >> rm -rf bootstrap >> @@ -55,7 +65,19 @@ Index: makefile >> # >> # Build the fbc[.exe] binary from the precompiled sources in the bootstrap/ >> # directory. >> -@@ -1098,6 +1083,7 @@ else >> +@@ -1086,22 +1069,16 @@ bootstrap: rtlib gfxlib2 $(BOOTSTRAP_FBC) >> + mkdir -p bin >> + cp $(BOOTSTRAP_FBC) $(FBC_EXE) >> + >> +-ifeq ($(TARGET_ARCH),x86) >> +- # x86: .asm => .o (using the same assembler options as fbc) >> +- BOOTSTRAP_OBJ = $(patsubst %.asm,%.o,$(sort $(wildcard >> bootstrap/$(FBTARGET)/*.asm))) >> +- $(BOOTSTRAP_OBJ): %.o: %.asm >> +- $(QUIET_AS)$(AS) --strip-local-absolute $< -o $@ >> +-else >> + # x86_64 etc.: .c => .o (using the same gcc options as fbc -gen gcc) >> + BOOTSTRAP_CFLAGS := -nostdinc >> + BOOTSTRAP_CFLAGS += -Wall -Wno-unused-label -Wno-unused-function >> -Wno-unused-variable >> BOOTSTRAP_CFLAGS += -Wno-unused-but-set-variable -Wno-main >> BOOTSTRAP_CFLAGS += -fno-strict-aliasing -frounding-math >> BOOTSTRAP_CFLAGS += -Wfatal-errors >> @@ -63,3 +85,7 @@ Index: makefile >> BOOTSTRAP_OBJ := $(patsubst %.c,%.o,$(sort $(wildcard >> bootstrap/$(FBTARGET)/*.c))) >> $(BOOTSTRAP_OBJ): %.o: %.c >> $(QUIET_CC)$(CC) -c $(BOOTSTRAP_CFLAGS) $< -o $@ >> +-endif >> + >> + # Use gcc to link fbc from the bootstrap .o's >> + # (assuming the rtlib was built already)