RPM

line continuation with DOS-style line endings in rpmio source files

Bug #1241831 reported by Tim Mooney
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
RPM
Fix Committed
Medium
Jeff Johnson

Bug Description

Building from CVS (20131017) on x86_64-pc-solaris2.11 (OpenIndiana 151a8) with the Oracle Studio 12.3 compiler toolchain.

Unlike gcc, the Studio compiler warns about source files that have DOS-style line endings. Generally this is only an annoyance (the warning can be turned off), but when the source file also uses \ for line continuation, it becomes an error, because Studio treats \r\n as two characters, and the line continuation is only affecting the \r.

Quite a number of the source files in rpmio have DOS style line endings, so this results in compilation errors for a number of them:

gmake[4]: Entering directory `/local/src/RPM/SOURCES/rpm-20131016/rpm/rpmio'
source='edon-r.c' object='edon-r.lo' libtool=yes \
 DEPDIR=.deps depmode=none /bin/bash ../depcomp \
 /bin/bash ../libtool --tag=CC --mode=compile cc -m64 -DHAVE_CONFIG_H -I. -I.. -I. -I.. -I../build -I../lib -I../lib -I../rpmdb -I../rpmio -I../misc -I../beecrypt/include -I../beecrypt/include -I../beecrypt -I../beecrypt -I/usr/local/include -I/usr/local/gnu/include -DRPM_OS_SOLARIS=021100 -I/local/include -I/local/include/neon -I/usr/include/pcre -xopenmp -xtarget=generic -m64 -xarch=generic -Xa -xc99=all -KPIC -I/usr/local/include -I/usr/local/gnu/include -KPIC -DPIC -v -xO0 -g -D_GNU_SOURCE -D_REENTRANT -c -o edon-r.lo edon-r.c
libtool: compile: cc -m64 -DHAVE_CONFIG_H -I. -I.. -I. -I.. -I../build -I../lib -I../lib -I../rpmdb -I../rpmio -I../misc -I../beecrypt/include -I../beecrypt/include -I../beecrypt -I../beecrypt -I/usr/local/include -I/usr/local/gnu/include -DRPM_OS_SOLARIS=021100 -I/local/include -I/local/include/neon -I/usr/include/pcre -xopenmp -xtarget=generic -m64 -xarch=generic -Xa -xc99=all -KPIC -I/usr/local/include -I/usr/local/gnu/include -KPIC -DPIC -v -xO0 -g -D_GNU_SOURCE -D_REENTRANT -c edon-r.c -KPIC -DPIC -o .libs/edon-r.o
cc: Warning: Optimizer level changed from 0 to 3 to support parallelized code.
"edon-r.c", line 2: warning: invalid white space character in directive
"edon-r.c", line 3: warning: invalid white space character in directive
"edon-r.c", line 10: warning: invalid white space character in directive
"edon-r.c", line 11: warning: invalid white space character in directive
"edon-r.c", line 13: warning: invalid white space character in directive
"edon-r.c", line 14: warning: invalid white space character in directive
"edon-r.c", line 61: warning: invalid white space character in directive
"edon-r.c", line 62: warning: invalid white space character in directive
"edon-r.c", line 63: warning: invalid white space character in directive
"edon-r.c", line 64: warning: invalid white space character in directive
"edon-r.c", line 66: warning: invalid white space character in directive
"edon-r.c", line 67: invalid source character: '\'
"edon-r.c", line 77: invalid source character: '\'
"edon-r.c", line 78: syntax error before or at: t0
"edon-r.c", line 78: invalid source character: '\'
"edon-r.c", line 79: invalid source character: '\'
"edon-r.c", line 80: invalid source character: '\'
"edon-r.c", line 81: invalid source character: '\'
"edon-r.c", line 82: invalid source character: '\'
"edon-r.c", line 83: invalid source character: '\'
"edon-r.c", line 84: invalid source character: '\'
"edon-r.c", line 85: invalid source character: '\'
"edon-r.c", line 86: invalid source character: '\'
"edon-r.c", line 87: invalid source character: '\'
"edon-r.c", line 88: invalid source character: '\'
"edon-r.c", line 89: invalid source character: '\'
"edon-r.c", line 90: invalid source character: '\'
"edon-r.c", line 91: invalid source character: '\'
"edon-r.c", line 92: invalid source character: '\'
"edon-r.c", line 93: invalid source character: '\'
"edon-r.c", line 94: invalid source character: '\'
"edon-r.c", line 95: invalid source character: '\'
"edon-r.c", line 96: invalid source character: '\'
"edon-r.c", line 97: invalid source character: '\'
"edon-r.c", line 98: invalid source character: '\'
"edon-r.c", line 99: invalid source character: '\'
"edon-r.c", line 100: invalid source character: '\'
"edon-r.c", line 101: invalid source character: '\'
"edon-r.c", line 102: invalid source character: '\'
"edon-r.c", line 103: invalid source character: '\'
"edon-r.c", line 113: invalid source character: '\'
"edon-r.c", line 114: invalid source character: '\'
"edon-r.c", line 115: invalid source character: '\'
"edon-r.c", line 116: invalid source character: '\'
"edon-r.c", line 117: invalid source character: '\'
"edon-r.c", line 118: invalid source character: '\'
"edon-r.c", line 119: invalid source character: '\'
"edon-r.c", line 120: invalid source character: '\'
"edon-r.c", line 121: invalid source character: '\'
"edon-r.c", line 122: invalid source character: '\'
"edon-r.c", line 123: invalid source character: '\'
"edon-r.c", line 124: invalid source character: '\'
"edon-r.c", line 125: invalid source character: '\'
"edon-r.c", line 126: invalid source character: '\'
"edon-r.c", line 127: invalid source character: '\'
"edon-r.c", line 128: invalid source character: '\'
"edon-r.c", line 129: invalid source character: '\'
"edon-r.c", line 130: invalid source character: '\'
"edon-r.c", line 131: invalid source character: '\'
"edon-r.c", line 132: invalid source character: '\'
"edon-r.c", line 133: invalid source character: '\'
"edon-r.c", line 134: invalid source character: '\'
"edon-r.c", line 135: invalid source character: '\'
"edon-r.c", line 136: invalid source character: '\'
"edon-r.c", line 137: invalid source character: '\'
"edon-r.c", line 138: invalid source character: '\'
"edon-r.c", line 141: warning: invalid white space character in directive
"edon-r.c", line 142: invalid source character: '\'
"edon-r.c", line 152: invalid source character: '\'
"edon-r.c", line 153: invalid source character: '\'
"edon-r.c", line 154: invalid source character: '\'
"edon-r.c", line 155: invalid source character: '\'
"edon-r.c", line 156: invalid source character: '\'
"edon-r.c", line 157: invalid source character: '\'
"edon-r.c", line 158: invalid source character: '\'
"edon-r.c", line 159: invalid source character: '\'
"edon-r.c", line 160: invalid source character: '\'
"edon-r.c", line 161: invalid source character: '\'
"edon-r.c", line 162: invalid source character: '\'
"edon-r.c", line 163: invalid source character: '\'
"edon-r.c", line 164: invalid source character: '\'
"edon-r.c", line 165: invalid source character: '\'
"edon-r.c", line 166: invalid source character: '\'
"edon-r.c", line 167: invalid source character: '\'
"edon-r.c", line 168: invalid source character: '\'
"edon-r.c", line 169: invalid source character: '\'
"edon-r.c", line 170: invalid source character: '\'
"edon-r.c", line 171: invalid source character: '\'
"edon-r.c", line 172: invalid source character: '\'
"edon-r.c", line 173: invalid source character: '\'
"edon-r.c", line 174: invalid source character: '\'
"edon-r.c", line 175: invalid source character: '\'
"edon-r.c", line 176: invalid source character: '\'
"edon-r.c", line 177: invalid source character: '\'
"edon-r.c", line 178: invalid source character: '\'
"edon-r.c", line 188: invalid source character: '\'
"edon-r.c", line 189: invalid source character: '\'
"edon-r.c", line 190: invalid source character: '\'
"edon-r.c", line 191: invalid source character: '\'
"edon-r.c", line 192: invalid source character: '\'
"edon-r.c", line 193: invalid source character: '\'
"edon-r.c", line 194: invalid source character: '\'
"edon-r.c", line 195: invalid source character: '\'
"edon-r.c", line 196: invalid source character: '\'
"edon-r.c", line 197: invalid source character: '\'
"edon-r.c", line 198: invalid source character: '\'
"edon-r.c", line 199: invalid source character: '\'
"edon-r.c", line 200: invalid source character: '\'
"edon-r.c", line 201: invalid source character: '\'
"edon-r.c", line 202: invalid source character: '\'
"edon-r.c", line 203: invalid source character: '\'
"edon-r.c", line 204: invalid source character: '\'
"edon-r.c", line 205: invalid source character: '\'
"edon-r.c", line 206: invalid source character: '\'
"edon-r.c", line 207: invalid source character: '\'
"edon-r.c", line 208: invalid source character: '\'
"edon-r.c", line 209: invalid source character: '\'
"edon-r.c", line 210: invalid source character: '\'
"edon-r.c", line 211: invalid source character: '\'
"edon-r.c", line 212: invalid source character: '\'
"edon-r.c", line 213: invalid source character: '\'
"edon-r.c", line 300: invalid source character: '\'
"edon-r.c", line 303: invalid source character: '\'
"edon-r.c", line 308: invalid source character: '\'
"edon-r.c", line 311: invalid source character: '\'
"edon-r.c", line 316: invalid source character: '\'
"edon-r.c", line 319: invalid source character: '\'
"edon-r.c", line 324: invalid source character: '\'
"edon-r.c", line 327: invalid source character: '\'
"edon-r.c", line 392: invalid source character: '\'
"edon-r.c", line 395: invalid source character: '\'
"edon-r.c", line 400: invalid source character: '\'
"edon-r.c", line 403: invalid source character: '\'
"edon-r.c", line 408: invalid source character: '\'
"edon-r.c", line 411: invalid source character: '\'
"edon-r.c", line 416: invalid source character: '\'
"edon-r.c", line 419: invalid source character: '\'
"edon-r.c", line 480: invalid source character: '\'
"edon-r.c", line 504: invalid source character: '\'
"edon-r.c", line 507: invalid source character: '\'
"edon-r.c", line 512: invalid source character: '\'
"edon-r.c", line 515: invalid source character: '\'
"edon-r.c", line 520: invalid source character: '\'
"edon-r.c", line 523: invalid source character: '\'
"edon-r.c", line 528: invalid source character: '\'
"edon-r.c", line 531: invalid source character: '\'
"edon-r.c", line 566: invalid source character: '\'
"edon-r.c", line 589: invalid source character: '\'
"edon-r.c", line 592: invalid source character: '\'
"edon-r.c", line 597: invalid source character: '\'
"edon-r.c", line 600: invalid source character: '\'
"edon-r.c", line 605: invalid source character: '\'
"edon-r.c", line 608: invalid source character: '\'
"edon-r.c", line 613: invalid source character: '\'
"edon-r.c", line 616: invalid source character: '\'
cc: acomp failed for edon-r.c
gmake[4]: *** [edon-r.lo] Error 1
gmake[4]: Leaving directory `/local/src/RPM/SOURCES/rpm-20131016/rpm/rpmio'

There are similar problems in echo.h, echo.c, md6.h, md6.c, shabal.c, and luffa.c.

As a workaround, I've taken to running this before running "gmake":

cd rpmio
dos2unix echo.h echo.h
dos2unix echo.c echo.c
dos2unix edon-r.c edon-r.c
dos2unix md6.h md6.h
dos2unix md6.c md6.c
dos2unix shabal.c shabal.c
dos2unix luffa.c luffa.c
cd ..

Tags: solaris
Revision history for this message
Jeff Johnson (n3npq) wrote :

Eeek! Fleas!

Changed in rpm:
assignee: nobody → Jeff Johnson (n3npq)
importance: Undecided → Medium
status: New → Fix Committed
milestone: none → 5.3.13
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.