Skip to content

Conversation

@jayrm
Copy link
Member

@jayrm jayrm commented Jan 28, 2019

These changes are leading up to next 1.06.0 release. This is my first iteration of working through the release process in many years. Building and testing packages only.

These updates allow building release packages for the following targets(hosts, toolchain):

  • linux-x86 (TinyCore9, i686, binutils 2.29.1, gcc 7.2.0)
  • linux-x86 (ubuntu 14.04, i686, binutils 2.24, gcc 4.8.4)
  • linux-x86 (slackware 14.2, i686, gcc 5.3.0)
  • linux-x86_64 (ubuntu 14.04, x86_64, binutils 2.24, gcc 4.8.4)
  • linux-x86_64 (slackware 14.2, x86_64, gcc 5.3.0)
  • win32-mingworg (mingw, MINGW32_NT-6.1, mingw, binutils 2.25.1, gcc 4.8.1)
  • win32-mingworg (winxp, mingw, i686, binutils 2.25.1, gcc 4.8.1)
  • win32 (mingw-w64, MSYS_NT-6.1-WOW, i686, binutils 2.25.1, gcc 5.2.0)
  • win64 (mingw-w64, MSYS_NT-6.1, x86_64, binutils 2.25.1, gcc 5.2.0)
  • dos (winxp, djgpp, binutils 2.29, gcc 7.1.0)

For each target/host, the binary package was used to build the source package, then using the newly built compiler to build the test suite. Generally, the 1.06.0 release is a 1.05.0 release with an updated compiler and run-time. Next release after this one should have binding updates and tool chain updates. Manifests will be updated in a separate pull request after reviewing package contents.

Changes for this pull request are summarized as follows:

makefile

  • avoid use of long command lines, msys2 & mingw-w64 ultimately call CreateProcess to execute commands. Some makefile commands are too long for this. mingw-org handles long command lines by writing options to temp files automatically.
  • use ./src/compiler/obj/ for object files. For me it makes building multiple standalone versions a little faster

build release script: ./contrib/release/build.sh

  • updated dos release with pthread & socket library
  • updated dos release with patch for pthread header
  • updated dos release with dxe3gen.exe
  • updated download link for dx80_mgw.zip
  • updated download link for GoRC.zip
  • after build libffi, cache the needed files for target/version to avoid a rebuild later

fbhelp

  • now tested on linux, though use of extended ascii chars will still look weird depending on configuration of terminal code page.

fbc-tests: ./tests/unit-tests.mk ./tests/log-tests.mk

  • avoid use of long command lines to allow building using mingw-w64 tools chains, shell, etc, on windows. Delegate to xargs to manage the length of command lines. Or write to to temp files as needed.
  • test suite should fully pass on DOS, ( though not all tests enabled )

fbdoc

  • wiki snap shots, multiple dates
  • example updates (checked that wiki examples compile)
  • copyright updates

jayrm added 24 commits January 1, 2019 00:22
- download for ddraw.h and dinput.h
- download Gorc.zip/GoRC.exe from author site
- mingw-w64/mingw32 needs explicit --host=i686-w64-mingw32 when cross compiling from mingw64 to mingw32
Author:    coderJeff <coder@execulink.com>
…libffi

- expect use src/compiler/obj/<target> directory
- cache key files from libffi builds, for faster rebuilding
- combine search in to a single find | grep | sed,
- use intermediate file for really long command line when linking
- break up long command lines (otherwise will fail on cmd.exe shell)
- force xargs to succeed even when no matches found (otherwise will abort prematurely)
- explicity clean fbc-tests.o (it's not part of unit-tests.inc)
@jayrm
Copy link
Member Author

jayrm commented Feb 9, 2019

I'm merging this change in to fbc/master. These are the changes I need to get the next release out. A separate pull request will be coming for the updated manifests and any other tweaks needed for the next release.

@jayrm jayrm merged commit 496b4fb into freebasic:master Feb 9, 2019
@jayrm jayrm deleted the 1.06.0 branch February 9, 2019 21:50
@countingpine
Copy link
Collaborator

Great work! Sorry for the lack of feedback.
I've just tested build.sh in MSYS on Windows 7 32-bit. Once I'd installed/pathed all the dependencies (Git, Curl 7-zip, NSIS; mingw-developer-toolkit, mingw-{un,}zip), it worked without any apparent errors and built all the necessary packages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants