The BSD grep for "basic regex" don't support \| as alternate operator.
Use multiple -e arguments for expressing alternative.
# Should not link dead code...
$(RUSTC) -Z print-link-args dummy.rs 2>&1 | \
- grep -e '--gc-sections\|-dead_strip\|/OPT:REF,ICF'
+ grep -e '--gc-sections' -e '-dead_strip' -e '/OPT:REF,ICF'
# ... unless you specifically ask to keep it
$(RUSTC) -Z print-link-args -C link-dead-code dummy.rs 2>&1 | \
- (! grep -e '--gc-sections\|-dead_strip\|/OPT:REF,ICF')
+ (! grep -e '--gc-sections' -e '-dead_strip' -e '/OPT:REF,ICF')