ocamlObjective Caml compiler and programming environment
4.14.2langΣ=60 4.14.2Version of this port present on the latest quarterly branch.upstream: 4.14.5A newer version was found upstream by portscout, first on 2026-11-07.
Objective Caml is an implementation of the ML language, based on
the Caml Light dialect extended with a complete class-based object system
and a powerful module system in the style of Standard ML.
Objective Caml comprises two compilers. One generates bytecode
which is then interpreted by a C program. This compiler runs quickly,
generates compact code with moderate memory requirements, and is
portable to essentially any 32 or 64 bit Unix platform. Performance of
generated programs is quite good for a bytecoded implementation:
almost twice as fast as Caml Light 0.7. This compiler can be used
either as a standalone, batch-oriented compiler that produces
standalone programs, or as an interactive, toplevel-based system.
The other compiler generates high-performance native code for a number
of processors. Compilation takes longer and generates bigger code, but
the generated programs deliver excellent performance, while retaining
the moderate memory requirements of the bytecode compiler.
===> The following configuration options are available for ocaml-4.14.2:
DOCS=on: Build and/or install documentation
EXAMPLES=on: Build and/or install examples
MANPAGES=on: Build and/or install manual pages
THREADS=on: Threading support
===> Use 'make config' to modify these settings
Templates/config.(guess|sub): Update to 2026-05-17
Also remove our local changes that replaced x86_64 with amd64 because
these complicate porting by forcing port maintainers to replace x86_64
with amd64 in configure scripts.
Additional changes:
bsd.port.mk: Apply S/amd64/x86_64/ to CONFIGURE_TARGET. This is not
required to run configure but some ports need to use this in pkg-plist.
comms/qico, news/fidogate:
CONFIGURE_TARGET shouldn't contain "--build". Just remove it altogether
because the default value is fine.
(Only the first 15 lines of the commit message are shown above )
lang/ocaml: unbreak with DOCS=ON after 3fc4fad263626857ec9252641e2794df6539d910
(+)
Commit 3fc4fad263626857ec9252641e2794df6539d910 drops extra '/' from from
_DISTDIR
Meanwhile ocaml Makefile stay relies on this extra '/' presence which caused
wromg path generation for doc distfile:
install: /portdistfilesocaml-4.14-refman.pdf: No such file or directory
Reported by: bulk -t
Approved by: portmgr blanket
lang/ocaml: fix build on powerpc
ld: error: relocation R_PPC_ADDR16_HA cannot be used against symbol
'caml_program'; recompile with -fPIC
>>> defined in power_libasmrunpic.o
>>> referenced by power_libasmrunpic.o:(caml_start_program)
ld: error: relocation R_PPC_ADDR16_LO cannot be used against symbol
'caml_program'; recompile with -fPIC
>>> defined in power_libasmrunpic.o
>>> referenced by power_libasmrunpic.o:(caml_start_program)
ld: error: relocation R_PPC_ADDR16_HA cannot be used against symbol
'caml_apply2'; recompile with -fPIC
>>> defined in power_libasmrunpic.o
>>> referenced by power_libasmrunpic.o:(caml_callback2_asm)
ld: error: relocation R_PPC_ADDR16_LO cannot be used against symbol
'caml_apply2'; recompile with -fPIC
(Only the first 15 lines of the commit message are shown above )
ocaml: Updates to ocaml compiler and several ocaml ports
- Update devel/ocaml to 4.14.2 [1]
- Specify runtime dependency on GNU AS as full path, this fixes
build on armv6 - armv7 [1] [2]
- converters/ocaml-base64: Update to 3.5.1, add LICENSE, other
improvements
- converters/ocaml-jsonm: Strip shared objects [3]
- databases/ocaml-dbm: Update to 1.3, move to gitlub, other
improvements
- devel/menhir: Update to 20231231
- devel/ocaml-base: Unbreak non-x86 [2]
- devel/ocaml-camlp-streams: Silence patch and strip commands
- devel/ocaml-ipaddr: Update to 5.5.0
- devel/ocaml-lwt: Update to 5.7.0 [4]
(Only the first 15 lines of the commit message are shown above )
lang/ocaml: Update to 4.14.1
The 'force-safe-string; setting is NOT enabled, as opposed to the
new upstream default. OCaml users are encouraged to migrate to safe
strings as soon as possible.
- The X11 library isn't part of lang/ocaml anymore, users should
install x11-toolkits/ocaml-graphics.
- Add new 'ocaml' USES
- Bump PORTREVISION on dependent ports, due to ABI Change.
The update includes the following updates to existing ports (needed
to keep them working):
- devel/ocaml-camlp4: Updated to 4.14+1
(Only the first 15 lines of the commit message are shown above )
Mk/*: Build with a clean environment
Both our make and gmake use the MAKEFLAGS environment variable but the
values aren't compatible and the latest version of gmake complains about
that. To rule out that any environment variable can cause problems like
this, add a new command SETENVI=/usr/bin/env -i that clears the
environment, and use it to run upstream build systems with a clean
environment.
Introduce a new variable WRK_ENV that contains the environment to use
with SETENVI in all targets that run upstream build commands. Variables
that are common between CONFIGURE_ENV and MAKE_ENV could be moved to
WRK_ENV but for now it just contains a minimal environment:
HOME=${WRKDIR}: Fixes USES=elixir ports that were using the user's HOME.
(Only the first 15 lines of the commit message are shown above )
*/*: Sunset 12.4-RELEASE/12-STABLE from ports tree
- Remove all references to defunct ARCH arm
- Remove all references to defunct ARCH sparc64
- Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64
ARCH
- Remove sysutils/afbinit requires defunct sparc64 ARCH
- Remove all references to bktr driver
- Remove all references to defunct FreeBSD_12
- Remove all references to OSVERSION/OSREL corresponding to 12
- Remove conditionals in Mk/Uses/cabal.mk
- Remove sparc reference from Mk/Uses/qt-dist.mk
- Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64
- Remove BROKEN_FreeBSD_12* from:
- Remove OpenSSL patches from:
- Remove conditional flags for OSVERSION >= 1300000 to fixed flags.
Also move conditional flags for non sparc64/arm ARCH to fixed flags.
Reviewed by: brooks, jbeich, rene, salvadore
Differential Revision: https://reviews.freebsd.org/D42068
lang/ocaml: Fix build on aarch64
SYSTEM_ARCH has to be set to arm64
The raw_spacetime_lib is only built on aarch64
Approved by: portmgr (build fix blanket)
lang/ocaml: Update to 4.08.1
This update allows (and for some requires) to also update dependencies
to newer versions. Where possible I updated to the latest version.
The ocaml port now is MAKE_JOBS safe.
Changes to dependent ports included in this commit:
- devel/ocaml-sexplib: Rename to devel/ocaml-sexplib0 adapting to
upstream. Update to 0.16.0
- devel/coccinelle: Update to 1.1.1, moved to github
- devel/ocaml-camlp4: Update to 4.08+1
- devel/ocaml-camomile: Use dune for build, adapt port
- devel/ocaml-cppo: Fix lib files installation [1]
(Only the first 15 lines of the commit message are shown above )
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
lang/ocaml: simplify handling of the documentation distfiles
- Make use of the options helper, DOCS_DISTFILES, and get rid of the
poorly readable .if ${PORT_OPTIONS:MDOCS} block
- Drop useless `post-extract' target, all needed files are extracted
automagically by the framework
- GC left-over CMP_LIB_DESC, MODOPT, PATTERN, and DOCSDISTNAME knobs
OCaml: transient update of the stack to version 4.07.1
This is the first step in modernizing our OCaml ports infrastructure,
as we had accumulated substantial technical debt over the years when
many of its consumer ports had not received proper care and updates.
It is currently considered as the lowest supported version (baseline)
in majority of open-source OCaml projects, which would help to pull
up other ports, e.g. `devel/ocaml-dune' in smaller, manageable pieces.
For conservative hackers among us and for compatibility with RHEL 8
which is also on it, having 4.07 in the tree would allow users stick
to that package (pkg lock it) if needed.
PR: 250408, 262781
Exp-run by: antoine
lang/ocaml: Remove redundant '-[0-9]*' from CONFLICTS
Follow-up to previous commit: one occurance of "-[0-9]*" had been
missed.
Approved by: portmgr (blanket)
*/*: Remove redundant '-[0-9]*' from CONFLICTS
The conflict checks compare the patterns first against the package
names without version (as reported by "pkg query "%n"), then - if
there was no match - agsinst the full package names including the
version (as reported by "pkg query "%n-%v").
Many CONFLICTS definitions used patterns like "bash-[0-9]*" to filter
for the bash package in any version. But that pattern is functionally
identical with just "bash".
Approved by: portmgr (blanket)
lang/ocaml: sort pkg-plist correctly, remove some old cruft
- Sort the *flat* pkg-plist (after the PLIST_SUB expansion), and drop
needless ``@dir lib/ocaml/threads'' entry
- Remove "INSTALL* safeness" gimmick which had been added 16 years ago
in r133975 and supposedly helped to preserve correct permissions in
some circumstances, but these days it erroneously removes executable
bits from some binaries, or causes nothing but stage Q/A warnings
lang/ocaml: fix build on powerpc
Use ld.bfd:
ld: error: can't create dynamic relocation R_PPC_ADDR16_LO against symbol:
caml_last_return_address in readonly segment; recompile object files with -fPIC
or pass '-Wl,-z,notext' to allow text relocations in the output
lang/ocaml: fix packaging on armv6
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.a:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cma:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cmi:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cmx:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cmxa:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.cmxs:No
such file or directory
pkg-static: Unable to access file
/wrkdirs/usr/ports/lang/ocaml/work/stage/usr/local/lib/ocaml/raw_spacetime_lib.mli:No
such file or directory
For ports on riscv64 that fail the same (or similar ways) to aarch64, mark
them BROKEN.
While here, pet portlint (Makevar order).
Approved by: portmgr (tier-2 blanket)
lang/ocaml: Fix build with llvm 11
Fix the build of lang/ocaml with llvm 11.
There are two issues, first off, te issue with -fno-common, which is default
with llvm 11. This is fixed by pulling in a modified patch from upstream,
as well as local patches.
Secondly, there's a problem with how asm sections are handled, patch this
locally. Thanks to dim@ for help with this.
MFH: 2020Q3 (implicit, -fno-common fixes, ok by joenum)
lang/ocaml: add BUILD_DEPENDS as:devel/binutils
/usr/bin/as will soon be removed from the FreeBSD base system, for
FreeBSD 13.0.
Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
change for existing 11.x and 12.x, which will continue to use the base
system GNU as 2.17.50.
PR: 205250
Approved by: portmgr (blanket)
Sponsored by: The FreeBSD Foundation
lang/ocaml: fix build on powerpc64 elfv2
LLVM miscompiles ocaml on powerpc64 elfv2:
ld: error: bytecomp/printlambda.ml:23:(.text+0x16): relocation R_PPC64_TOC16_DS
out of range: 73024 is not in [-32768, 32767]
Use GCC instead on powerpc64.
Add a conditional patch enabled only on powerpc64 elfv2 to use elfv2 abi instead
of elfv1.
Add a bunch of other patches to correctly check for abi instead of relying on
endianness.
PR: 242389
Approved by: michipili@gmail.com (maintainer)
Add USES=xorg USES=gl, ports categories l
Add USES=xorg and USES=gl to ports in categories starting with 'l'
While here, try to sprinkle other USES (mostly gnome and sdl) as needed.
lang/ocaml: fix build on armv7
armv7 requires -Wl,-znotext in LDFLAGS (same as i386), added definition for
triple target and include term.h in the test for tgetent.
PR: 239157
Approved by: michipili@gmail.com (maintainer timeout), tcberner (mentor)
Differential Revision: https://reviews.freebsd.org/D21085
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
Make sure that correct LDFLAGS are passed when linking shared libraries,
otherwise the build would fail on i386 with recent versions of FreeBSD.
PR: 218333
Fix up pkg-plist in case the THREADS option (which is on by default) is
off by marking a couple of files added in revision 505020 conditional on
that option.
PR: 218333
Update OCaml to version 4.05.0 (this is the last version where strings
are unsafe by default, which is the main motivation why it was picked,
but not the very latest one) and synchronize the rest of the stack and
dependent ports with it, particularly:
- Update `devel/ocaml-ocamlbuild' to version 0.14.0 and unbreak,
register build dependency on all ports that require it (should
be part of USE_OCAML, but we do not want to make any Mk-related
changes the for time being)
- Update `devel/ocaml-camlp4' to version 4.05+2
- Update `devel/ocaml-camlp5' to version 7.07 (the project had
moved to GitHub)
- Mark `devel/ocaml-deriving-ocsigen' as BROKEN for now, it is
very outdated and requires quite a lot of work
- Update `x11-toolkits/ocaml-labltk' to version 8.06.3
PR: 218333
Exp-run by: antoine
lang/ocaml: add -znotext to LDFLAGS on i386, for lld
Example error:
/usr/bin/ld: error: can't create dynamic relocation R_386_32 against
symbol: caml_last_return_address in readonly segment; recompile
object files with -fPIC
This port links some non-PIC code, which fails with lld as it defaults
to disallowing relocations against read-only segments. For i386 we can
just add -znotext unconditionally: for GNU BFD ld it just affirms BFD's
existing default.
PR: 214864, 230209
Approved by: bapt
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D17200
Further pre-update cleanups for `lang/ocaml':
- Do not suppress .bak-files when patching things with ``sed(1) -i'',
those can be useful for debugging and catching no-ops
- Drop `files/manfiles', it is no longer used (looks like a relic from
pre-staging times)
- Do not pass ``-as "${AS} ${ASFLAGS}"'' in the initial CONFIGURE_ARGS:
when ARM support was added in r361233, appropriate values are passed
conditionally (subject to ${ARCH}), see line 69
- Simplify handling of CFLAGS (obtained from RedHat package): rather
than passing them as part of the compiler and "fixing" one generated
Makefile in `post-configure', teach the configure script about them
In sight of long-overdue update of `lang/ocaml', start cleaning things up:
- Remove hunks from `patch-configure' that are irrelevant on *BSD
- Do not aggressively edit configure script in `post-patch', especially
when it is not required (e.g. no variables are expanded). This was
the reason for bogus changes committed in r403835 by wen@ and r403898
by marino@ (cf. "$bytecclinkopts $bytecclinkopts $bytecclinkopts");
now ``make makepatch'' command is idempotent again
- Do not needlessly pass STAGEDIR via MAKE_ENV: it is correctly passed
via MAKE_ARGS (as DESTDIR), and OCaml's build system is aware of it,
while nowhere referencing STAGEDIR variable
- Drop permission fix for ld.conf that was added in r169472 by itetcu@
11 years 4 months ago: it is no-op these days
Build logs remain identical (modulo the whitespace), regression tests pass.
Actualize BROKEN_sparc64 statement. It was (re)marked broken last time in
r138465 by mi@ (first time in r109062 by kris@), that's 12.5 years ago, and
never revisited ever since (except minor facelifting in r387855 by marino@).
The world was largely different back then, with GCC 3.4.4 and OCaml 3.08.3.
Currently it does not build on 10.4-STABLE running under QEMU 2.9.0.
While here, remove stale comment about hardcoded GCC for depend target that
was added in r292093 by bf@ and later *not* removed in r385012 by marino@
together with in-place editing commands it was attributed to. I messed up
the history with r456400, thinking it still applies yet not performing the
proper archaeology check, and rightfully deserve a pointy hat for that.
First step to unbreak `lang/ocaml' on aarch64: teach configure script that
the architecture exists on FreeBSD. Unfortunately, this is not enough for
build to succeed, it now complains that as(1) is not found:
../boot/ocamlrun ../ocamlopt -strict-sequence -w +33..39 -g -warn-error A
-bin-annot -nostdlib -safe-string `./Compflags camlinternalFormatBasics.cmx`
-c camlinternalFormatBasics.ml
sh: as: not found
File "camlinternalFormatBasics.ml", line 1:
Error: Assembler error, input left in file /tmp/camlasm4329ae.s
gmake[7]: *** [Makefile.shared:84: camlinternalFormatBasics.cmx] Error 2
Developed on: ref11-aarch64.freebsd.org
Improve handling of the system architecture in `lang/ocaml'.
OCaml is using ARCH variable throughout its makefiles, which clashes with
our own variable of the same name. To workaround it, OCAML_ARCH variable
was introduced which is set based on ARCH, and makefiles later patched in
the `post-configure' target.
This approach does not scale well with porting OCaml to new architectures
as being fragile and sometimes making the build non-idempotent under some
circumstances.
Instead of "fixing" makefiles post-configure, rename ARCH to SYSTEM_ARCH:
this avoids the clash altogether and lets configure script to set correct
values for supported architectures in the first place with no adjustments
required afterwards.
Tested on: i386, amd64, powerpc
Attempt to build on armv7 by generalizing from armv6 code.
Unfortanately it didn't build for me on armv7: perhaps it is a difference
in compiler. (It currently builds on armv6 on the freebsd.org cluster.)
So, this is a necessary but insufficient step.
Approved by: portmgr (tier-2 blanket)
As usual, routinely update to the next version in r403835 had removed support
for DragonFly (readded in r403898) and FreeBSD/powerpc. Put it back (again).
Upgrade from 4.02.1 to 4.02.3. Disable adding of explicit -O to compiler flags,
because that ends up lowering optimization for most people (from -O2).
Approved by: maintainer
(The upgrade is too minor to justify revision bumping of depending ports.)
lang/ocaml: give execute permissions via pkg-plist to two files
PR: 195736
Submitted by: mmatalka@gmail.com
Approved by: Michael Gruenewald <michipili@gmail.com> (maintainer)
lang/ocaml: Remove softvfp option from ARMv6 build (no longer required)
PR: 200102
Submitted by: Mikael Urankar
Approved by: maintainer (assumed good, not able to test)
MASTER_SITES cleanup.
- Replace ${MASTER_SITE_FOO} with FOO.
- Merge MASTER_SITE_SUBDIR into MASTER_SITES when possible. (This means 99.9%
of the time.)
- Remove occurrences of MASTER_SITE_LOCAL when no subdirectory was present and
no hint of what it should be was present.
- Fix some logic.
- And generally, make things more simple and easy to understand.
While there, add magic values to the FESTIVAL, GENTOO, GIMP, GNUPG, QT and
SAMBA macros.
Also, replace some EXTRACT_SUFX occurences with USES=tar:*.
Checked by: make fetch-urlall-list
With hat: portmgr
Sponsored by: Absolight
lang/ocaml: Tweak PROFILE handling to support DragonFly
This changes a conditional statement to an equivalent variation. An
internal transformation of DPorts was getting confused by this construct.
Discussed with: Michael Gruenewald (maintainer)
lang/ocaml: Upgrade version 4.01 => 4.02
PR: 195736
Submitted by: Michael Gruenewald (maintainer)
Add'l fixes: marino
Besides typical port cleanup, the dragonfly patches which had been
removed for the update were added back to the configure patch.
lang/ocaml: Add ARMv6 support
Redports confirms that changes do not break i386 and amd64 builds (8x).
PR: 189063
Submitted by: maintainer (Michael Gruenewald)
Patch by: Andy Ray
lang/ocaml: Remove DEF_OPT option (non-default option)
The option reacts poorly with ocamlp4, and phasing out DEF_OPT
completely will prevent a lot of breakage with ports that also
interact with ocamlp4.
PR: 189176
Submitted by: Anil Madhavapeddy
Prepared by: maintainer (Michael Gruenewald)
math/facile:
- bump PORTREVISION to trigger repackaging after recent ocaml update:
the package is usable only with ocaml which was used to compile facile.
lang/ocaml:
- add upgrading notes for committers
lang/ocaml: Fix NO_PROFILE setting and native compiler for DragonFly
The ocaml port was not respecting a NO_PROFILE definition in make.conf,
which causes a stage check failure (missing files) if it is set. Improve
that logic and patch the configure script in numerous places to support
building the native code compiler on DragonFly. This is one of those
famous ports that think all BSDs have the pattern "bsd" in their target
triplet.
Continued under PR: ports/188158
lang/ocaml: Fix plist issues
These missing man page issues were seen on Redports and reported, then
disappeared after the final patch. Unfortunately they weren't actually
addresses, so it's a mystery why Redports didn't continue to catch the
problem, nor the extra ocamldoc/custom directory (which is why the
ocamldoc/custom/.keep file original existed).
Add the 15 missing man pages to the plist and remove the empty directory
in the post-install target. Strangely enough, Redports still shows an
8x pass. I'm losing a lot of confidence in Redports results...
While here, remove the muting from the post-install target. This is
against convention.
PR: ports/188158
lang/ocaml: Upgrade version 4.00.1 to 4.01.0 and stage
This is a significant update from the maintainer. Not only has stage
support been added (and verified with an 8x pass on RedPorts), but
installed binaries are no longer stripped which was the cause of the
coccinelle malfunction seen on DragonFly.
Licensing was also defined, and the X11 build failure caused by the
use of the -R linker flag without the -Wl prefix has also been
rectified. [2]
PR: ports/188158 [1]
Submitted by: maintainer (Michael Gruenewald)
PR: ports/188330 [2]
Submitted by: madpilot
Approved by: maintainer
ocaml update 1/4: lang/ocaml upgrade from 3.12 to 4.00
There have been manual outstanding PRs on OCAML that have dragged on
for well more than a year. In the meantime, FreeBSD has been painfully
stucking on version 3.12 of Ocaml. Meanwhile, DragonFly's dports have
been maintaining version 4.00.
With a "Just do it" attitude, the dports version of Ocaml has been brought
in. This doesn't have stage support, nor is the the latest version
available. The idea is just get a working base Ocaml 4.00 in ports and
then have the maintainer update the appropriate PRs.
As a consequence, updates to omake, ocaml-findlib, and ocaml-images is
also required and upcoming.
Urged by: portmgr (bapt)
Related PR: ports/173364
Related PR: ports/173453
SSP support has been added to ports with WITH_SSP for i386 and amd64
on FreeBSD 10, and amd64 on earlier versions.
SSP_UNSAFE is added to disable in a port if it fails to build, but
this should only be used in rare circumstances such as kernel modules.
Otherwise, the port may just be failing due to lack of respecting
LDFLAGS.
On FreeBSD 10, this uses an ldscript in /usr/lib/libc.so to pull in
libssp_nonshared.a to address issues linking on i386 [1].
On earlier FreeBSD versions the WITH_SSP knob will add -lssp_nonshared
to LDFLAGS on i386. This is not needed on amd64. However, several hundred
ports do not currently respect LDFLAGS, so this support is disabled currently
as it causes build failures if a dependency is looking for the stack_chk
(Only the first 15 lines of the commit message are shown above )