Author: bdrewery
Date: Thu Jun 22 21:03:24 2017
New Revision: 320245
URL: https://svnweb.freebsd.org/changeset/base/320245

Log:
  Support XLD for setting X_LINKER_TYPE and X_LINKER_VERSION.
  
  This is similar to r300350 for bsd.compiler.mk.
  
  MFC after:    2 weeks
  Reviewed by:  emaste
  Sponsored by: Dell EMC Isilon
  Differential Revision:        https://reviews.freebsd.org/D11309

Modified:
  head/share/mk/bsd.linker.mk

Modified: head/share/mk/bsd.linker.mk
==============================================================================
--- head/share/mk/bsd.linker.mk Thu Jun 22 21:03:20 2017        (r320244)
+++ head/share/mk/bsd.linker.mk Thu Jun 22 21:03:24 2017        (r320245)
@@ -9,25 +9,39 @@
 #     major * 10000 + minor * 100 + tiny
 # It too can be overridden on the command line.
 #
+# These variables with an X_ prefix will also be provided if XLD is set.
+#
 # This file may be included multiple times, but only has effect the first time.
 #
 
 .if !target(__<bsd.linker.mk>__)
 __<bsd.linker.mk>__:
 
-_ld_version!=  ${LD} --version 2>/dev/null | head -n 1 || echo none
+.for ld X_ in LD $${_empty_var_} XLD X_
+.if ${ld} == "LD" || !empty(XLD)
+.if ${ld} == "LD" || (${ld} == "XLD" && ${XLD} != ${LD})
+
+_ld_version!=  ${${ld}} --version 2>/dev/null | head -n 1 || echo none
 .if ${_ld_version} == "none"
-.error Unable to determine linker type from LD=${LD}
+.error Unable to determine linker type from ${ld}=${${ld}}
 .endif
 .if ${_ld_version:[1..2]} == "GNU ld"
-LINKER_TYPE=   binutils
+${X_}LINKER_TYPE=      binutils
 _v=    ${_ld_version:[3]}
 .elif ${_ld_version:[1]} == "LLD"
-LINKER_TYPE=   lld
+${X_}LINKER_TYPE=      lld
 _v=    ${_ld_version:[2]}
 .else
-.error Unknown linker from LD=${LD}: ${_ld_version}
+.error Unknown linker from ${ld}=${${ld}}: ${_ld_version}
 .endif
-LINKER_VERSION!=echo "${_v:M[1-9].[0-9]*}" | awk -F. '{print $$1 * 10000 + $$2 
* 100 + $$3;}'
+${X_}LINKER_VERSION!=  echo "${_v:M[1-9].[0-9]*}" | \
+                         awk -F. '{print $$1 * 10000 + $$2 * 100 + $$3;}'
+.undef _ld_version
+.undef _v
+.endif # ${ld} == "LD" || (${ld} == "XLD" && ${XLD} != ${LD})
+
+.endif # ${ld} == "LD" || !empty(XLD)
+.endfor        # .for ld in LD XLD
+
 
 .endif # !target(__<bsd.linker.mk>__)
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to