NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

bin/57533: usr.bin/xlint/lint1 fails to build on Solaris 11.4 host - basic/extended regex issue - Posix



>Number:         57533
>Category:       bin
>Synopsis:       usr.bin/xlint/lint1 fails to build on Solaris 11.4 host - basic/extended regex issue - Posix
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jul 20 20:40:00 +0000 2023
>Originator:     Palle Lyckegaard
>Release:        current
>Organization:
NetBSD
>Environment:
SunOS gcc106.fsffrance.org 5.11 11.4.57.144.3 sun4v sparc sun4v logical-domain

>Description:
The Makefile in usr.bin/xlint/lint1 has issues with the invocation of the 'sed -E' command on a Posix compliant system like Solaris 11.4.

The following error message in displayed:

sed -E  -e 's,.*(....)/([0-9]{2})/0?([0-9]+).*,\2 \3\, \1,'  -e 's,^01,January,'  -e 's,^02,February,'  -e 's,^03,March,'  -e 's,^04,April,'  -e 's,^05,May,'  -e 's,^06,June,'  -e 's,^07,July,'  -e 's,^08,August,'  -e 's,^09,September,'  -e 's,^10,October,'  -e 's,^11,November,'  -e 's,^12,December,'  -e 1q  /export/home/palle/git/netbsd_src/usr.bin/xlint/lint1/err.c > lint.7.date
+ sed -E -e 's,.*(....)/([0-9]{2})/0?([0-9]+).*,\2 \3\, \1,' -e 's,^01,January,' -e 's,^02,February,' -e 's,^03,March,' -e 's,^04,April,' -e 's,^05,May,' -e 's,^06,June,' -e 's,^07,July,' -e 's,^08,August,' -e 's,^09,September,' -e 's,^10,October,' -e 's,^11,November,' -e 's,^12,December,' -e 1q /export/home/palle/git/netbsd_src/usr.bin/xlint/lint1/err.c
sed: illegal option -- E
Usage:  sed [-n] script [file...]
        sed [-n] [-e script]...[-f script_file]...[file...]

*** Failed target:  lint.7.date
*** Failed command: sed -E -e 's,.*(....)/([0-9]{2})/0?([0-9]+).*,\2 \3\, \1,' -e 's,^01,January,' -e 's,^02,February,' -e 's,^03,March,' -e 's,^04,April,' -e 's,^05,May,' -e 's,^06,June,' -e 's,^07,July,' -e 's,^08,August,' -e 's,^09,September,' -e 's,^10,October,' -e 's,^11,November,' -e 's,^12,December,' -e 1q /export/home/palle/git/netbsd_src/usr.bin/xlint/lint1/err.c > lint.7.date
*** Error code 1


Using the '-E' option is not available on a proper POSIX.1-2008, SUSv4 compliant system.

>How-To-Repeat:
Issue a build.sh release on a Solaris 11.4 host system
>Fix:
Rework the 'sed' command to use basic regular expression instead.
The is perhaps too simplistic, but seems to make the job.

Here is the patch:

diff --git a/usr.bin/xlint/lint1/Makefile b/usr.bin/xlint/lint1/Makefile                                                                                                                                           
index b6fba9292d42..6644c897471e 100644                                                                                                                                                                            
--- a/usr.bin/xlint/lint1/Makefile                                                                                                                                                                                 
+++ b/usr.bin/xlint/lint1/Makefile                                                                                                                                                                                 
@@ -41,8 +41,8 @@ LINT1=                ${TOOLDIR}/libexec/${MACHINE_GNU_PLATFORM}-lint1                                                                                                                           
 LINT1?=                ./${PROG}                                                                                                                                                                                  
                                                                                                                                                                                                                   
 ${MAN}.date:   err.c                                                                                                                                                                                              
-       sed -E \                                                                                                                                                                                                   
-           -e 's,.*(....)/([0-9]{2})/0?([0-9]+).*,\2 \3\, \1,' \                                                                                                                                                  +       sed \                                                                                                                                                                                                      
+           -e 's,.*\([0-9]\{4\}\)/\([0-9]\{2\}\)/\([0-9]\{2\}\).*,\2 \3\, \1,' \                                                                                                                                  
            -e 's,^01,January,' \                                                                                                                                                                                  
            -e 's,^02,February,' \                                                                                                                                                                                             -e 's,^03,March,' \     


rillig@ seems to be the recept maintainer of lint



Home | Main Index | Thread Index | Old Index