HomeFreeBSD

lang/gprolog: recover GNU Prolog under FreeBSD.

Description

lang/gprolog: recover GNU Prolog under FreeBSD.

Update to version 1.4.5 released in 2020.
Make it build and run with Clang 10:

  • clang has no register reservation for x86, hence patch-EnginePl_machine.h and -DNO_MACHINE_REG_FOR_REG_BANK to prevent using missing feature;
  • add patch-Ma2Asm_x8664any.c fetched from upstream SourceForge post-release commit dealing with PIC issues;
  • disable usage of spinlocks that results in a hang eating all available CPU cycles; fixed with -DUSE_LOCKS=1 -DUSE_RECURSIVE_LOCKS=1 -DUSE_SPIN_LOCKS=0;
  • the software uses bundled dlmalloc dated back 2011 that replaces functions like calloc() with own implemenations and it's calloc() sometimes fails to clear allocated memory; this results in SIGSEGV when its own hash-table implementation dereferences junk that supposed to be NULL pointer, so it fails to complete build; fixed with MMAP_CLEARS=0.

PR: 231393

Details

Provenance
eugenAuthored on
Parents
rP556105: Update to 3.3.0 to be ruby 2.7 compatible.
Branches
Unknown
Tags
Unknown