[Bug 281238] lang/gforth: Fails to build with GCC 14: prim:2157:5: error: implicit declaration of function 'ecvt' [-Wimplicit-function-declaration]

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 16 Nov 2024 08:33:36 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281238

Lorenzo Salvadore <salvadore@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #255192|0                           |1
        is obsolete|                            |

--- Comment #8 from Lorenzo Salvadore <salvadore@freebsd.org> ---
Created attachment 255211
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=255211&action=edit
gforth poudriere log

Still broken, with the following error (full log attached):

or i in libffi.fs fflib.fs cstr.fs unix/socket.fs; do ./gforth -e "s\"
`pwd`/lib/gforth/0.7.3/libcc-named/\" libcc-named-dir-v 2! libcc-path
clear-path libcc-named-dir libcc-path also-path :noname 2drop s\"
/usr/local/lib/gforth/0.7.3/libcc-named/\" ; is replace-rpath" ./$i -e bye;
done
/wrkdirs/usr/ports/lang/gforth/work/gforth-0.7.3/lib/gforth/0.7.3/libcc-named/libffi.c:
In function 'libffi_LTX_gforth_c_ffi_prep_closure1_aaa_n':
/wrkdirs/usr/ports/lang/gforth/work/gforth-0.7.3/lib/gforth/0.7.3/libcc-named/libffi.c:95:3:
warning: 'ffi_prep_closure' is deprecated: use ffi_prep_closure_loc instead
[-Wdeprecated-declarations]
   95 |   sp[2]=ffi_prep_closure1((void *)(sp[2]),(void *)(sp[1]),(void
*)(sp[0]));
      |   ^~
In file included from
/wrkdirs/usr/ports/lang/gforth/work/gforth-0.7.3/lib/gforth/0.7.3/libcc-named/libffi.c:3:
/usr/local/include/ffi.h:356:1: note: declared here
  356 | ffi_prep_closure (ffi_closure*,
      | ^~~~~~~~~~~~~~~~

file not found
in file included from *OS command line*:-1
libffi.fs:159: open-lib failed
>>>end-c-library<<<
Backtrace:
$1FF3B4004990 throw 
$1FF3B4040B68 c(abort") 
$1FF3B4041418 compile-wrapper-function1 

file not found
in file included from *OS command line*:-1
fflib.fs:136: open-lib failed
>>>end-c-library<<<
Backtrace:
$356E0BE04990 throw 
$356E0BE40B68 c(abort") 
$356E0BE41418 compile-wrapper-function1 

file not found
in file included from *OS command line*:-1
cstr.fs:23: open-lib failed
>>>end-c-library<<<
Backtrace:
$1A51F0604990 throw 
$1A51F0640B68 c(abort") 
$1A51F0641418 compile-wrapper-function1 

file not found
in file included from *OS command line*:-1
unix/socket.fs:48: open-lib failed
>>>end-c-library<<<
Backtrace:
$15EF3BC04990 throw 
$15EF3BC40B68 c(abort") 
$15EF3BC41418 compile-wrapper-function1 
gmake: *** [Makefile:653: build-libcc-named] Error 1
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/gforth
build of lang/gforth | gforth-0.7.3_15 ended at Sat Nov 16 09:11:43 CET 2024
build time: 00:01:14
!!! build failure encountered !!!



However -fpermissive this time works fine. Of course I agree that a real fix is
better, but I believe a workaround such as -fpermissive is fine for a temporary
solution or even for unmaintained ports or software unmaintained upstream.

In case it is still useful, those were the issues I had with pkg-plist using
-fpermissive, but they are now solved:

====> Running Q/A tests (stage-qa)
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
===> Checking for items in pkg-plist which are not in STAGEDIR
Error: Missing: lib/gforth/%%PORTVERSION%%/libcc-named/fflib.a
Error: Missing: lib/gforth/%%PORTVERSION%%/libcc-named/fflib.so
Error: Missing: lib/gforth/%%PORTVERSION%%/libcc-named/fflib.so.0
Error: Missing: lib/gforth/%%PORTVERSION%%/libcc-named/fflib.so.0.0.0
===> Error: Plist issues found.
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/gforth
=>> Error: check-plist failures detected

-- 
You are receiving this mail because:
You are on the CC list for the bug.