Page MenuHomeFreeBSD

Drop support for FreeBSD 12.0 in the Ports Tree
ClosedPublic

Authored by rene on Mar 28 2020, 5:50 PM.

Details

Summary

Clean up some Makefiles now that FreeBSD 12.0 is no longer supported.

Note that net/bnxt-kmod is now useless and has its expiration date set to 2020-06-28.

Test Plan

make index

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

I'm (still) not x11@ but looks good for those ports to me.
Thanks for doing that.

zeising added a subscriber: zeising.

Minor nit above, nothing important.

This revision is now accepted and ready to land.Mar 28 2020, 7:14 PM
emulators/mesen/Makefile
36

Can you check the port still builds on FreeBSD 13.0 (or 12.2) where /usr/lib/libc++fs.a is gone? If not try the following:

.if exists(/usr/lib/libc++fs.a)
# XXX Remove after FreeBSD 11.3/12.1 EOL
MAKE_ARGS+=	FSLIB=-lc++fs
.else
# Not required with libc++ 9 or libstdc++ 9
# https://github.com/llvm/llvm-project/commit/cc37af7a3631
# https://github.com/gcc-mirror/gcc/commit/3935f409704b
MAKE_ARGS+=	FSLIB= # empty
.endif
net-mgmt/kapacitor/Makefile
46–47

Non-FreeBSD case can probably be dropped as DragonFly folks didn't bother to fix build, so the half-measure may be pointless.
https://github.com/DragonFlyBSD/DeltaPorts/tree/master/ports/net-mgmt/kapacitor/
https://sting.dragonflybsd.org/dports/logs/net-mgmt___kapacitor.log

net/ceph13/Makefile
111–112

bsd.port.options.mk can be dropped as there're no more .if conditionals.

net/ceph14/Makefile
111–112

bsd.port.options.mk can be dropped as there're no more .if conditionals.

net/zerotier/Makefile
45
sysutils/dwatch-gource/Makefile
21–22

bsd.port.options.mk can be dropped as there're no more .if conditionals.

sysutils/dwatch-json/Makefile
22–23

bsd.port.options.mk can be dropped as there're no more .if conditionals.

sysutils/dwatch-pwsnoop/Makefile
22

bsd.port.options.mk can be dropped as there're no more .if conditionals.

www/node/Makefile
6

Not necessary as packages are not built for 12.0 anymore. If @bhughes confirms it was a build fix then forcing rebuild just to break ALLOW_UNSUPPORTED_SYSTEM is pointless.

emulators/mesen/Makefile
45

Can you check it builds on 11.3 which still uses BFD linker by default (execpt on aarch64)? If not try the following:

# XXX Make unconditional after FreeBSD 11 EOL
.if !exists(/usr/bin/clang) || (${/usr/bin/ld:L:tA} == /usr/bin/ld.lld)
MAKE_ARGS+=	LTO=true
.endif

Basically, -flto is broken in base Clang unless linker is LLD because it looks for LLVMgold.so which is not built as part of base system.

emulators/mesen/Makefile
45

Wait, 11.* can use -fuse-ld=lld to fix -flto:

MAKE_ARGS+=	LTO=true

# XXX Make unconditional after FreeBSD 11 EOL
.if exists(/usr/bin/ld.lld) && (${/usr/bin/ld:L:tA} != /usr/bin/ld.lld)
LDFLAGS+=	-fuse-ld=lld
.endif

After that LTO=true can be moved where other unconditional MAKE_ARGS are defined for better readability.

emulators/mesen/Makefile
45

Err, if you use -fuse-ld=lld then drop # XXX Make unconditional after FreeBSD 11 EOL comment. -fuse-ld=lld cannot be passed unconditionally (would break GCC archs) and is not required on FreeBSD 12.

Sorry for the noise, Phabricator doesn't allow editing inline comments.

Apply comments from jbeich

This revision now requires review to proceed.Mar 28 2020, 7:56 PM
rene marked 8 inline comments as done.Mar 28 2020, 7:58 PM
rene added inline comments.
emulators/mesen/Makefile
36

It indeed fails with 13.0-amd64 (r359299), which does not have /usr/lib/libc++fs.a :

ld: error: unable to find library -lstdc++fs

Your patch works, in bulk -t mode it does leave this build_fs_violation, which I've seen with more mono ports:

=>> Checking for filesystem violations... done
=>> Error: Filesystem touched during build:
extra: usr/local/etc/mono/registry
=>> Cleaning up wrkdir
45

Build on 11.3-amd64 is still broken, with LTO=true added unconditional to MAKE_ARSG and the conditional LDFLAGS+= block :

/usr/bin/ld: unrecognized option '-plugin'
/usr/bin/ld: use the --help option for usage information
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[1]: *** [makefile:149: Libretro/obj.x64/mesen_libretro.x64.so] Error 1
gmake[1]: Leaving directory '/wrkdirs/usr/ports/emulators/mesen/work/Mesen-0.9.8-4-g4c701ad6'
rene marked 2 inline comments as done.

apply more comments from jbeich

Self-accept, emulators/mesen can be done later.

This revision is now accepted and ready to land.Apr 13 2020, 11:03 AM