The UTIL macros have several problematic flaws that may not seem apparent 
initially, the worst of which include parsing commas as actual argument 
separators to the underlying m4 macros, and completely, but very subtly 
wrecking shell constructs. I've done my best here to fix some of these issues 
in this commit, so others don't end up suffering like I did while I was trying 
to implement [8296478](https://github.com/openjdk/jdk/pull/11020). Most 
notably, DESC and CHECKING_MSG should now function correctly when a comma is 
included as part of their description strings (Other named arguments do not yet 
have this fix implemented, it was simply far too tedious, but it should be 
straightforward after this commit to fix those as well). I've also fixed 
several bugs that seem to have flown under the radar (Such as UTIL_DEFUN_NAMED 
always adding an extra space in between the parameter name and actual value, 
even if not required). Majority of the fix involved UTIL_DEFUN_NAMED, however 
while it now
  properly passes along arguments it receives to macros that use it to 
implement their logic, the latter still need to be mindful of macro expansions 
inside their _own_ body



A couple of limitations from the original implementation still remain: You 
still cannot have the parameter specifier inside its own block, for instance 
IF_GIVEN: [IF_GIVEN: []] would not work properly (IF_GIVEN: [IF_GIVEN []] 
without the colon in the inner string will, however). Additionally, if a space 
is not given in between the parameter and its value (Eg DEFAULT:[] instead of 
the usual DEFAULT: []) the processing that UTIL_DEFUN_NAMED performs to correct 
this problem will still interfere with shell code that relies on the : token. 
Unfortunately, despite my best efforts I was unable to properly resolve these 
last 2 limitations

-------------

Commit messages:
 - Wording
 - Partially fix string expansion issues in autoconf UTIL macros

Changes: https://git.openjdk.org/jdk/pull/11458/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=11458&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8297963
  Stats: 26 lines in 1 file changed: 6 ins; 0 del; 20 mod
  Patch: https://git.openjdk.org/jdk/pull/11458.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11458/head:pull/11458

PR: https://git.openjdk.org/jdk/pull/11458

Reply via email to