In addition to fetching from GitHub the order of definitions in the
port Makefile has been normalized, @sample tags are now used in the
pkg-plist file, and the BSD3CLAUSE style LICENSE file is included in
the generated package.
Approved by: ecrist@secure-computing.net (maintainer)
this brings the double_t-related typedefs in line with our definitions
and brings back the rounding helpers for those.
PR: 258804
Reported by: Felix Palmen
During an exp-run for llvm 13 (see bug 258209), it turned out that
emulators/elliott fails to build with clang 13:
emulator.c:536:20: error: variable 'y' set but not used [-Werror,-Wunused-but-set-variable]
int x, x1, y;
^
1 error generated.
This is because x, x1 and y are used in ncurses getyx() macros, but in
this case the program is not interested in the y result. Mark it as
__unused to get rid of the warning.
PR: 258471
Approved by: maintainer timeout (2 weeks)
MFH: 2021Q4
During an exp-run for llvm 13 (see bug 258209), it turned out that
chinese/c2t fails to build with clang 13:
cc -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -DCHINDICT=\"/usr/local/share/chinese/gb/TONEPY.tit\" -c c2t.c
c2t.c:99:3: error: address of register variable requested
hz[2] = '\0';
^~
c2t.c:107:7: error: address of register variable requested
hz[0] = (char)eka;
^~
c2t.c:108:7: error: address of register variable requested
hz[1] = (char)toka;
^~
c2t.c:113:8: error: address of register variable requested
if (hz[0] != (*pipo)[i] || hz[1] != (*pipo)[i+1]) continue;
^~
c2t.c:113:31: error: address of register variable requested
if (hz[0] != (*pipo)[i] || hz[1] != (*pipo)[i+1]) continue;
^~
c2t.c:133:36: error: address of register variable requested
fprintf(miss_chars, "%c", hz[0]);
^~
c2t.c:134:30: error: address of register variable requested
fprintf(miss_chars, "%c ", hz[1]);
^~
c2t.c:143:17: error: address of register variable requested
printf("%c", hz[0]);
^~
c2t.c:144:18: error: address of register variable requested
printf("%c ", hz[1]);
^~
9 errors generated.
As indicated, arrays shouldn't be register variables as they don't have
addresses. In general, the register keyword is deprecated and should no
longer be used.
To fix this, use a command line flag to define "register" to empty.
PR: 258465
Approved by: maintainer timeout (2 weeks)
MFH: 2021Q4
During an exp-run for llvm 13 (see bug 258209), it turned out that both
chinese/bitchx and irc/bitchx fail to build with clang 13 [1]:
...
cc -fstack-protector-strong -L/usr/lib -o BitchX alias.o alist.o array.o art.o banlist.o bot_link.o cdcc.o cdns.o chelp.o commands.o commands2.o compat.o cset.o ctcp.o dcc.o debug.o encrypt.o exec.o files.o flood.o fset.o functions.o funny.o glob.o hash.o hebrew.o help.o history.o hook.o if.o ignore.o input.o irc.o ircaux.o ircsig.o keys.o lastlog.o list.o log.o mail.o misc.o modules.o names.o network.o newio.o notice.o notify.o numbers.o output.o parse.o queue.o readlog.o reg.o screen.o server.o stack.o status.o struct.o tcl_public.o term.o timer.o translat.o user.o userlist.o vars.o who.o whowas.o window.o words.o -ldl -ltinfo -lssl -lcrypto -lm -lcrypt
ld: error: undefined symbol: operator
>>> referenced by alias.c
>>> alias.o:(zzlex)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
This is because several functions in source/expr2.c are marked __inline,
without either static or extern keyword. The compiler then has to assume
the function is also externally available.
Fix this by marking the affected functions static.
PR: 258464
Approved by: fernape (maintainer)
MFH: 2021Q4
Though x11/libwacom was not yet built during the exp-run for clang/llvm
13 (see bug 258209), due to some other dependencies not being available
yet, I noticed that it failed to build with clang 13, or more
specifically this is due to a behavior change in lld 13:
...
[ 33% 10/30] cc -o generate-hwdb generate-hwdb.p/tools_generate-hwdb.c.o -Wl,--as-needed -Wl,--no-undefined -fstack-protector-strong -O2 -pipe -g -fstack-protector-strong -fno-strict-aliasing '-Wl,-rpath,$ORIGIN/' -Wl,-rpath-link,/wrkdirs/share/dim/ports/x11/libwacom/work/libwacom-1.5/_build/ -Wl,--start-group libwacom.so.2.6.1 /usr/local/lib/libglib-2.0.so /usr/local/lib/libintl.so -Wl,--end-group
[ 36% 11/30] /usr/local/bin/meson --internal exe --capture 65-libwacom.hwdb -- /wrkdirs/share/dim/ports/x11/libwacom/work/libwacom-1.5/_build/generate-hwdb
FAILED: 65-libwacom.hwdb
/usr/local/bin/meson --internal exe --capture 65-libwacom.hwdb -- /wrkdirs/share/dim/ports/x11/libwacom/work/libwacom-1.5/_build/generate-hwdb
--- stderr ---
Unfortunately the meson build process doesn't really show you why it
failed, but it turns out that running the 'generate-hwdb' command
segfaults:
Starting program: /wrkdirs/share/dim/ports/x11/libwacom/work/libwacom-1.5/_build/generate-hwdb
Program received signal SIGSEGV, Segmentation fault.
libwacom_add_match (device=device@entry=0x801031320, newmatch=0x0) at ../libwacom/libwacom.c:943
943 device->matches[device->nmatches - 1] = libwacom_match_ref(newmatch);
(gdb) bt
#0 libwacom_add_match (device=device@entry=0x801031320, newmatch=0x0) at ../libwacom/libwacom.c:943
#1 0x000000080024fc7d in libwacom_matchstr_to_match (device=device@entry=0x801031320, matchstr=<optimized out>) at ../libwacom/libwacom-database.c:207
#2 0x000000080024e313 in libwacom_parse_tablet_keyfile (db=0x8010365a0, datadir=0x200b70 "/wrkdirs/share/dim/ports/x11/libwacom/work/libwacom-1.5/data", filename=<optimized out>) at ../libwacom/libwacom-database.c:652
#3 load_tablet_files (db=0x8010365a0, datadir=0x200b70 "/wrkdirs/share/dim/ports/x11/libwacom/work/libwacom-1.5/data") at ../libwacom/libwacom-database.c:865
#4 libwacom_database_new_for_path (datadir=0x200b70 "/wrkdirs/share/dim/ports/x11/libwacom/work/libwacom-1.5/data") at ../libwacom/libwacom-database.c:959
#5 0x00000000002021b6 in main (argc=<optimized out>, argv=0x801036630) at ../tools/generate-hwdb.c:131
What happens is that an internal function 'libwacom_match_new' is
supposed to be called, which returns a new 'WacomMatch' object. But
instead, it calls a empty stub which returns NULL, resulting in this
segfault. The empty stub was added as a rather nasty upstream hack to
"Alias the accidentally exposed ABI into different functions", in
b9961dbe91:
> A special "trick" is used here to hide the ABI from new versions:
> Usually when defining multiple versioned symbols, one would define one as the
> default one with @@
> .symver _foo1,foo@VERSION1
> .symver _foo2,foo@@version2 <-- default one
> By leaving out the default one, ld doesn't know which one to link to and
> fails with an unresolved symbol. rtld however can still figure it out, so
> anything compiled will continue to work. This way we can make a symbol
> disappear from the library for new builds but have old builds continue to
> work with the new version.
Unfortunately this trick/hack does not work anymore with lld 13, since
https://github.com/llvm/llvm-project/commit/66d44304921, ("[ELF] Combine
foo@v1 and foo with the same versionId if both are defined "). The idea
behind the hack is to have the linker call the 'real' libwacom_match_new
function whenever it is called from inside the library itself, but any
external callers get the stubbed version which doesn't really do
anything.
I think libwacom should have used a different approach here, but just
renaming those accidentally exposed internal functions to something
different. Then the tricks with .symver are completely unnecessary. Here
I added a patch that is as simple as possible, which adds #defines for
two affected functions in libwacomint.h, renaming then from
'libwacom_xxx' to 'libwacom_internal_xxx'. This does not affect the
corresponding exposed functions in the libwacom.so, and makes the
'generate-hwdb' command work OK again. I also ran the complete libwacom
test suite, including the deprecated functions test, and it works fine.
PR: 258463
Approved by: zeising (maintainer)
MFH: 2021Q4
During an exp-run for llvm 13 (see bug 258209), it turned out that
archivers/upx fails to build with clang 13:
p_wcle.cpp:739:27: error: variable 'n' set but not used [-Werror,-Wunused-but-set-variable]
unsigned count,object,n,r;
^
1 error generated.
This is because clang 13 now has a -Wunused-but-set-variable warning
similar to gcc's, and it is enabled under -Wall.
The p_wcle.cpp file has two instances where the 'n' variable is used for
debugging purposes, but the first instance is marked with UNUSED(n). The
second is not, triggering this warning. Fix it by also marking the
second instance with UNUSED(n).
PR: 258394
Approved by: maintainer timeout (3 weeks)
This back ports 3d5484b928 and
5a1f2db457 from emulators/wine-devel:
When Wine gained support for the Vulkan API and D3D support via
Vulkan we added two options (both off by default): VULKAN and
VKD3D.
Simplify things, in particular also from a user perspective, by only
keeping the VKD3D option which now subsumes the former VULKAN option
(and hence Vulkan API support).
No change in defaults - yet.
On the way adjust CONFIGURE_ARGS to only feature on option per line,
which was mostly the case already anyway.
PR: 258375
Builds fine on armv6 at least with LLD 12.0.1. Since FreeBSD >= 12.0
armv6 is deprecated in favor of armv7, anyway.
$ objdump -D $(which musicpd) | fgrep -w -e movt -e movw; echo Exit $?
Exit 1
Restore patch-bug1628567 to unbreak glslopt crate build due to cc crate
passing Rust target "x86_64-unknown-freebsd" without OS version to clang++:
[glslopt 0.1.9] cargo:warning=/wrkdirs/usr/ports/www/firefox/work/.build/
ist/system_wrappers/new:3:15: fatal error: 'new' file not found
[glslopt 0.1.9] cargo:warning=#include_next <new>
PR: 258837