Compiling with Clang: Output only warnings? - linux-kernel

When compiling the kernel, how can I have the compiler output only warnings? Something like this:
arm:multi_v7_defconfig | Success in 1 minute and 5 seconds
warning: include/asm-generic/atomic-instrumented.h is out-of-date.
warning: include/asm-generic/atomic-long.h is out-of-date.
warning: include/linux/atomic-fallback.h is out-of-date.
warning: include/asm-generic/atomic-instrumented.h is out-of-date.
warning: include/asm-generic/atomic-long.h is out-of-date.
warning: include/linux/atomic-fallback.h is out-of-date.
net/ipv6/ah6.c:721:4: warning: format specifies type 'unsigned short' but the argument has type 'int' [-Wformat]
net/ipv6/esp6.c:856:5: warning: format specifies type 'unsigned short' but the argument has type 'int' [-Wformat]
drivers/hid/hid-quirks.c:1075:27: warning: format specifies type 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') [-Wformat]
drivers/hid/hid-quirks.c:1076:4: warning: format specifies type 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') [-Wformat]
drivers/hid/hid-quirks.c:1242:12: warning: format specifies type 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') [-Wformat]
drivers/hid/hid-quirks.c:1242:26: warning: format specifies type 'unsigned short' but the argument has type '__u32' (aka 'unsigned int') [-Wformat]
drivers/scsi/scsi_sysfs.c:372:1: warning: format specifies type 'short' but the argument has type 'int' [-Wformat]
drivers/scsi/scsi_sysfs.c:377:1: warning: format specifies type 'short' but the argument has type 'unsigned char' [-Wformat]
drivers/gpu/drm/nouveau/nouveau_dp.c:51:9: warning: format specifies type 'unsigned short' but the argument has type 'u8' (aka 'unsigned char') [-Wformat]
drivers/gpu/drm/nouveau/nouveau_dp.c:51:17: warning: format specifies type 'unsigned short' but the argument has type 'u8' (aka 'unsigned char') [-Wformat]
drivers/gpu/drm/nouveau/nouveau_dp.c:51:25: warning: format specifies type 'unsigned short' but the argument has type 'u8' (aka 'unsigned char') [-Wformat]
drivers/gpu/drm/nouveau/nouveau_dp.c:55:9: warning: format specifies type 'unsigned short' but the argument has type 'u8' (aka 'unsigned char') [-Wformat]
drivers/gpu/drm/nouveau/nouveau_dp.c:55:17: warning: format specifies type 'unsigned short' but the argument has type 'u8' (aka 'unsigned char') [-Wformat]
drivers/gpu/drm/nouveau/nouveau_dp.c:55:25: warning: format specifies type 'unsigned short' but the argument has type 'u8' (aka 'unsigned char') [-Wformat]
The total build time is really nice as well.
Are these Clang specific features or will I also find them in GCC?

Related

C99 standard and gnu libc printf

the c99 standard (ISO/IEC 9899:1999) says that the length field of pintf format placeholder can be L, that apply only to float number. Thi is confirmed also in printf(3) manpage:
L
A following a, A, e, E, f, F, g, or G conversion corresponds to a long double argument.
If I compile this:
printf("%Ld",3);
using -std=c99 gcc argument, I get a warning:
warning: format ‘%Ld’ expects argument of type ‘long long int’, but argument 2 has type ‘int’ [-Wformat=]
printf("%Ld",3);
^
It seems that gnu libc does not folloe c99 standard
I have gcc 6.3.0, gnu libc 2.24, my host is a linux ubuntu 17.04 64bit
[Edited]
if I compile this:
printf("%Ld\n",3);
printf("%lld\n", 3LL);
printf("%Lf\n", 3.3L);
printf("%llf\n", 3.3L);
printf("%f\n", 3.3L);
I get:
warning: format ‘%Ld’ expects argument of type ‘long long int’, but argument 2 has type ‘int’ [-Wformat=]
printf("%Ld\n",3);
^
warning: use of ‘ll’ length modifier with ‘f’ type character has either no effect or undefined behavior [-Wformat=]
printf("%llf\n", 3.3L);
^
warning: format ‘%f’ expects argument of type ‘double’, but argument 2 has type ‘long double’ [-Wformat=]
printf("%f\n", 3.3L);
^
So the expected warning message is like for %llf.
with -pedantic I get more verbose messages:
warning: ISO C does not support the ‘%Ld’ gnu_printf format [-Wformat=]
printf("%Ld\n",3);
^
warning: format ‘%Ld’ expects argument of type ‘long long int’, but argument 2 has type ‘int’ [-Wformat=]
warning: use of ‘ll’ length modifier with ‘f’ type character has either no effect or undefined behavior [-Wformat=]
printf("%llf\n", 3.3L);
^
warning: format ‘%f’ expects argument of type ‘double’, but argument 2 has type ‘long double’ [-Wformat=]
printf("%f\n", 3.3L);
^
[Edited]
I have a mail from gcc ML
it looks that '%Ld' is allowed and require
‘long long int’.
But it is allowed by GNU libc, that's the point. For GNU libc %Ld
means the same as %lld, but that's non-standard, so when you use
-pedantic you get a warning.
And this explain the warning message.
The standard says:
If a length modifier appears with any conversion specifier other than as specified above, the behavior is undefined.
In this case, the L length modifier is not specified for use with the d conversion specifier, so the behavior is undefined.
Presumably gcc (this is gcc giving you the warning, not libc) is using the same internal flag for long doubles and long long ints. It would be nice if the warning were more precise, but it isn't required to give you any warning at all (or to do anything else in particular), so it's following the standard correctly.

Cannot install RMagick 2.15.4

I'm trying to install RMagick 2.15.4 on RHEL 6.7 using Ruby 2.0.0 and ImageMagick 7.0.2.
I've installed ImageMagick7, ImageMagick7-c++, ImageMagick7-c++-devel, ImageMagick7-devel, ImageMagick7-libs packages, made a symlinks:
ln -s /usr/include/ImageMagick-7/MagickCore/ /usr/include/ImageMagick-7/magick
ln -s /usr/include/ImageMagick-7/MagickWand/ /usr/include/ImageMagick-7/wand
And launched install:
C_INCLUDE_PATH=/usr/include/ImageMagick-7/ gem install rmagick
But got this errors:
======================================================================
Thu 16Jun16 05:08:41
This installation of RMagick 2.15.4 is configured for
Ruby 2.0.0 (x86_64-linux) and ImageMagick 7.0.2
======================================================================
Configured compile options: {:magick_config=>false, :pkg_config=>true, :magick_version=>"7.0.2", :local_libs=>" -lMagickCore-7.Q16HDRI ", :cflags=>" -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/ImageMagick-7 ", :cppflags=>" -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/ImageMagick-7 ", :ldflags=>" -lMagickCore-7.Q16HDRI ", :defs=>[], :config_h=>"Makefile rmagick.h"}
make "DESTDIR="
compiling rmmontage.c
In file included from rmmontage.c:14:
rmagick.h:1210: error: expected declaration specifiers or ‘...’ before ‘MagickPixelPacket’
rmagick.h:1219: warning: parameter names (without types) in function declaration
rmagick.h:1224: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
rmagick.h:1240: warning: parameter names (without types) in function declaration
rmagick.h:1253: warning: parameter names (without types) in function declaration
rmagick.h:1289: error: expected declaration specifiers or ‘...’ before ‘MagickPixelPacket’
rmmontage.c: In function ‘Montage_background_color_eq’:
rmmontage.c:110: warning: passing argument 1 of ‘Color_to_PixelPacket’ from incompatible pointer type
rmagick.h:1209: note: expected ‘struct PixelPacket *’ but argument is of type ‘struct PixelInfo *’
rmmontage.c: In function ‘Montage_border_color_eq’:
rmmontage.c:131: warning: passing argument 1 of ‘Color_to_PixelPacket’ from incompatible pointer type
rmagick.h:1209: note: expected ‘struct PixelPacket *’ but argument is of type ‘struct PixelInfo *’
rmmontage.c: In function ‘Montage_fill_eq’:
rmmontage.c:215: warning: passing argument 1 of ‘Color_to_PixelPacket’ from incompatible pointer type
rmagick.h:1209: note: expected ‘struct PixelPacket *’ but argument is of type ‘struct PixelInfo *’
rmmontage.c: In function ‘Montage_matte_color_eq’:
rmmontage.c:353: error: ‘MontageInfo’ has no member named ‘matte_color’
rmmontage.c: In function ‘Montage_stroke_eq’:
rmmontage.c:416: warning: passing argument 1 of ‘Color_to_PixelPacket’ from incompatible pointer type
rmagick.h:1209: note: expected ‘struct PixelPacket *’ but argument is of type ‘struct PixelInfo *’
make: *** [rmmontage.o] Error 1
I checked all developer dependencies on https://rubygems.org/gems/rmagick/versions/2.15.4, and they was satisfied.
How to fix this?
Thanks.

Make error - Installing package (regviewer) Error 1

I am trying to install the "regiviewer" application.
As far as Im aware I have installed all the required dependencies.
As I go to ./configure the package, it completes this, returning no error and prompts me to 'make' (compile the package).
Upon doing so I get the following errors outputted:
make[2]: *** [ntreg.o] Error 1
make[2]: Leaving directory `/usr/local/src/regviewer-0.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/regviewer-0.1'
make: *** [all] Error 2
I do not know what this means or how to rectify this. (fairly new to Linux)
Any help would be much appreciated :)
The full output is shown below:
/usr/local/src/regviewer-0.1$ make
make all-recursive
make[1]: Entering directory `/usr/local/src/regviewer-0.1'
Making all in src
make[2]: Entering directory `/usr/local/src/regviewer-0.1/src'
gcc -DHAVE_CONFIG_H -I. -I..
-DPACKAGE_DATA_DIR=\""/usr/local/share"\"
-DPACKAGE_LOCALE_DIR=\""/usr/local//locale"\"
-pthread -DORBIT2=1 -D_REENTRANT -I/usr /include/libgnomeui-2.0
-I/usr/include /libart-2.0 -I/usr/include/gconf/2
-I/usr/include/gnome-keyring-1 -I/usr /include/libgnome-2.0
-I/usr/include /libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0
-I/usr/include/gtk-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gnome-vfs-2.0
-I/usr/lib/x86_64-linux-gnu/gnome-vfs-2.0/include -I/usr/include/dbus-1.0
-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orbit-2.0
-I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0
-I/usr/include/libxml2
-I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/freetype2
-I/usr/include/atk-1.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include
-I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1
-I/usr/include/libpng12 -g -O2 -MT ntreg.o -MD -MP -MF .deps/ntreg.Tpo -c
-o ntreg.o ntreg.c
ntreg.c: In function ‘parse_nk’:
ntreg.c:378:29: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:379:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:380:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:381:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:382:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:383:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:384:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:385:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:386:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:387:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:388:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:389:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:391:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_vk’:
ntreg.c:410:31: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:412:31: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:413:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:415:18: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:417:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:418:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:420:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_sk’:
ntreg.c:438:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:439:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:440:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:442:46: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:444:46: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_lf’:
ntreg.c:462:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:471:12: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_lh’:
ntreg.c:490:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:496:12: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘parse_li’:
ntreg.c:517:3: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c:522:5: warning: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 2 has type ‘long int’ [-Wformat]
ntreg.c: In function ‘nk_ls’:
ntreg.c:1326:7: warning: field width specifier ‘*’ expects argument of type ‘int’,
but argument 2 has type ‘size_t’ [-Wformat]
ntreg.c: In function ‘put_dword’:
ntreg.c:1999:17: error: lvalue required as left operand of assignment
ntreg.c: In function ‘fmyinput’:
ntreg.c:69:9: warning: ignoring return value of ‘fgets’, declared with
attribute warn_unused_result [-Wunused-result]
make[2]: *** [ntreg.o] Error 1
make[2]: Leaving directory `/usr/local/src/regviewer-0.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/regviewer-0.1'
make: *** [all] Error 2
The ntreg.c file: lines 1989 - 2000
/* And, yer basic DWORD write */
int put_dword(struct hive *hdesc, int vofs, char *path, int dword)
{
struct keyval *kr;
int r;
ALLOC(kr,1,sizeof(int)+sizeof(int));
kr->len = sizeof(int);
(int)kr->data = dword;
r = put_buf2val(hdesc, kr, vofs, path, REG_DWORD);
FREE(kr);
return(r);
}
/* ================================================================ */
The error on the line in question appears to have been corrected in the upstream source between the date in 2003 that the 0.1 release was cut and the date in 2009 that the latest change was made in the CVS repo. I have no idea if the CVS code will ultimately work better or if the project, once compiled, will work at all correctly but that updated code base is likely a better place to start trying to work from.

Ruby DevKit compile issues

My compass had broken
>compass compile
LoadError on line ["36"] of C: cannot load such file -- zurb-foundation
C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.2/lib/compass/configuration/data.rb:161:in `requi
re'
C:/www/project/config.rb:2:in `get_binding'
[...]
so I decided it was time to reinstall Ruby. Downloaded and installed rubyinstaller-1.9.3-p385.exe. It told me to also install the DevKit.
But gem install rdiscount --platform=ruby didn't go so well:
C:/Ruby193/bin/ruby.exe extconf.rb
checking for random()... no
checking for srandom()... no
checking for rand()... yes
checking for srand()... yes
checking size of unsigned long... 4
checking size of unsigned int... 4
creating Makefile
make
generating rdiscount-i386-mingw32.def
compiling basename.c
compiling Csio.c
Csio.c: In function 'Csputc':
Csio.c:14:5: warning: operation on 'iot->size' may be undefined
compiling css.c
css.c: In function 'mkd_css':
css.c:57:6: warning: operation on 'f.size' may be undefined
compiling docheader.c
compiling dumptree.c
dumptree.c: In function 'Pptype':
dumptree.c:23:22: warning: return discards qualifiers from pointer target type
[...]
dumptree.c:37:22: warning: return discards qualifiers from pointer target type
dumptree.c: In function 'pushpfx':
dumptree.c:44:24: warning: operation on 'sp->size' may be undefined
dumptree.c: In function 'dumptree':
dumptree.c:104:5: warning: initialization discards qualifiers from pointer target type
dumptree.c:104:5: warning: initialization discards qualifiers from pointer target type
compiling emmatch.c
emmatch.c: In function 'emfill':
emmatch.c:79:4: warning: operation on 'p->b_text.size' may be undefined
compiling generate.c
generate.c: In function 'push':
generate.c:37:2: warning: operation on 'f->in.size' may be undefined
generate.c: In function 'Qchar':
generate.c:120:9: warning: operation on 'f->Q.size' may be undefined
generate.c:127:5: warning: operation on 'cur->b_text.size' may be undefined
generate.c: In function 'Qem':
generate.c:172:17: warning: operation on 'f->Q.size' may be undefined
generate.c:179:13: warning: operation on 'f->Q.size' may be undefined
generate.c: In function '___mkd_reparse':
generate.c:197:5: warning: operation on 'sub.in.size' may be undefined
generate.c: In function 'puturl':
generate.c:228:6: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:230:6: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:232:6: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:236:6: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:238:6: warning: passing argument 2 of 'Qprintf' discards qualifiers from pointer target type
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: At top level:
generate.c:458:5: warning: initialization discards qualifiers from pointer target type
generate.c:459:5: warning: initialization discards qualifiers from pointer target type
generate.c:460:5: warning: initialization discards qualifiers from pointer target type
generate.c:461:5: warning: initialization discards qualifiers from pointer target type
generate.c: In function 'isautoprefix':
generate.c:473:29: warning: comparison between signed and unsigned integer expressions
generate.c: At top level:
generate.c:497:1: warning: initialization discards qualifiers from pointer target type
[...]
generate.c:514:5: warning: initialization discards qualifiers from pointer target type
generate.c: In function 'pseudo':
generate.c:527:30: warning: comparison between signed and unsigned integer expressions
generate.c: In function 'p_or_nothing':
generate.c:575:5: warning: return discards qualifiers from pointer target type
generate.c: In function 'extra_linky':
generate.c:594:3: warning: passing argument 2 of 'Qprintf' discards qualifiers from pointer target type
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: In function 'linkyformat':
generate.c:632:6: warning: passing argument 2 of 'Qprintf' discards qualifiers from pointer target type
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:633:6: warning: passing argument 2 of 'Qprintf' discards qualifiers from pointer target type
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:637:6: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: In function 'cputc':
generate.c:733:5: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:734:5: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:735:5: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: In function 'mangle':
generate.c:748:2: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
[...]
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: At top level:
generate.c:1085:5: warning: initialization discards qualifiers from pointer target type
[...]
generate.c: In function 'smartypants':
generate.c:1119:18: warning: comparison between signed and unsigned integer expressions
generate.c:1122:3: warning: passing argument 2 of 'Qprintf' discards qualifiers from pointer target type
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1144:8: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1146:8: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: In function 'text':
generate.c:1208:2: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1212:4: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
[...]
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: At top level:
generate.c:1372:1: warning: initialization discards qualifiers from pointer target type
generate.c:1372:1: warning: initialization discards qualifiers from pointer target type
generate.c:1372:1: warning: initialization discards qualifiers from pointer target type
generate.c:1373:7: warning: initialization discards qualifiers from pointer target type
generate.c: In function 'splat':
generate.c:1384:5: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1395:6: warning: passing argument 2 of 'Qprintf' discards qualifiers from pointer target type
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
[...]
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: In function 'printblock':
generate.c:1475:5: warning: initialization discards qualifiers from pointer target type
generate.c:1475:5: warning: initialization discards qualifiers from pointer target type
generate.c:1475:5: warning: initialization discards qualifiers from pointer target type
generate.c:1476:5: warning: initialization discards qualifiers from pointer target type
generate.c:1476:5: warning: initialization discards qualifiers from pointer target type
generate.c:1476:5: warning: initialization discards qualifiers from pointer target type
generate.c:1484:3: warning: passing argument 1 of 'push' discards qualifiers from pointer target type
generate.c:34:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1490:7: warning: passing argument 1 of 'push' discards qualifiers from pointer target type
generate.c:34:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: In function 'printcode':
generate.c:1507:5: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1519:5: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: In function 'htmlify':
generate.c:1546:2: warning: passing argument 2 of 'Qprintf' discards qualifiers from pointer target type
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1551:2: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1555:3: warning: passing argument 2 of 'Qprintf' discards qualifiers from pointer target type
generate.c:155:1: note: expected 'char *' but argument is of type 'const char *'
generate.c: In function 'definitionlist':
generate.c:1566:2: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1570:3: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1572:3: warning: passing argument 1 of 'Qstring' discards qualifiers from pointer target type
generate.c:135:1: note: expected 'char *' but argument is of type 'const char *'
generate.c:1575:6: warning: passing argument 2 of 'htmlify' discards qualifiers from pointer target type
[...]
cstring.h:73:12: note: expected 'char *' but argument is of type 'const char *'
generate.c: In function 'mkd_document':
generate.c:1710:6: warning: operation on 'p->ctx->out.size' may be undefined
compiling html5.c
html5.c: In function 'mkd_with_html5_tags':
html5.c:15:5: warning: passing argument 1 of 'mkd_define_tag' discards qualifiers from pointer target type
tags.h:17:6: note: expected 'char *' but argument is of type 'const char *'
html5.c:16:5: warning: passing argument 1 of 'mkd_define_tag' discards qualifiers from pointer target type
tags.h:17:6: note: expected 'char *' but argument is of type 'const char *'
html5.c:17:5: warning: passing argument 1 of 'mkd_define_tag' discards qualifiers from pointer target type
tags.h:17:6: note: expected 'char *' but argument is of type 'const char *'
html5.c:18:5: warning: passing argument 1 of 'mkd_define_tag' discards qualifiers from pointer target type
tags.h:17:6: note: expected 'char *' but argument is of type 'const char *'
html5.c:19:5: warning: passing argument 1 of 'mkd_define_tag' discards qualifiers from pointer target type
tags.h:17:6: note: expected 'char *' but argument is of type 'const char *'
html5.c:20:5: warning: passing argument 1 of 'mkd_define_tag' discards qualifiers from pointer target type
tags.h:17:6: note: expected 'char *' but argument is of type 'const char *'
html5.c:21:5: warning: passing argument 1 of 'mkd_define_tag' discards qualifiers from pointer target type
tags.h:17:6: note: expected 'char *' but argument is of type 'const char *'
compiling markdown.c
markdown.c:104:15: warning: initialization discards qualifiers from pointer target type
markdown.c: In function 'quoteblock':
markdown.c:743:17: warning: initialization discards qualifiers from pointer target type
markdown.c:751:12: warning: assignment discards qualifiers from pointer target type
markdown.c: In function 'addfootnote':
markdown.c:955:23: warning: operation on 'f->footnotes->size' may be undefined
markdown.c:963:2: warning: operation on 'foot->tag.size' may be undefined
markdown.c:965:5: warning: operation on 'foot->tag.size' may be undefined
markdown.c:971:6: warning: operation on 'foot->title.size' may be undefined
markdown.c:976:2: warning: operation on 'foot->link.size' may be undefined
markdown.c:977:5: warning: operation on 'foot->link.size' may be undefined
markdown.c:1004:6: warning: operation on 'foot->title.size' may be undefined
markdown.c:1010:2: warning: operation on 'foot->title.size' may be undefined
compiling mkdio.c
mkdio.c: In function 'queue':
mkdio.c:59:3: warning: operation on 'p->text.size' may be undefined
mkdio.c:63:6: warning: operation on 'p->text.size' may be undefined
mkdio.c:67:5: warning: operation on 'p->text.size' may be undefined
mkdio.c: In function 'populate':
mkdio.c:113:6: warning: operation on 'line.size' may be undefined
mkdio.c: In function 'mkd_line':
mkdio.c:275:2: warning: operation on 'f.out.size' may be undefined
compiling rdiscount.c
In file included from c:\ruby193\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/windows.h:48:0,
from c:\ruby193\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/winsock2.h:22,
from c:/Ruby193/include/ruby-1.9.1/ruby/win32.h:40,
from c:/Ruby193/include/ruby-1.9.1/ruby/defines.h:223,
from c:/Ruby193/include/ruby-1.9.1/ruby/ruby.h:67,
from c:/Ruby193/include/ruby-1.9.1/ruby.h:32,
from rdiscount.c:2:
c:\ruby193\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/windef.h:229:23: error: duplicate 'unsigned'
c:\ruby193\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/windef.h:238:23: error: duplicate 'unsigned'
c:\ruby193\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/windef.h:238:23: error: two or more data types in declaration specifiers
c:\ruby193\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/windef.h:241:24: error: duplicate 'unsigned'
rdiscount.c: In function 'rb_rdiscount_to_html':
rdiscount.c:18:5: warning: implicit declaration of function 'rb_rdiscount__get_flags'
rdiscount.c:18:5: warning: ISO C90 forbids mixed declarations and code
rdiscount.c: In function 'rb_rdiscount_toc_content':
rdiscount.c:55:5: warning: ISO C90 forbids mixed declarations and code
make: *** [rdiscount.o] Error 1
I've tried uninstalling Ruby and removing the C:/Ruby193 directory, but the same errors still occurs.
I was hoping that I could just gem install compass and be on my way, but I still get the same error when I run compass compile.
Do you know how to fix this?
Looks like there is an issue with the latest version of rdiscount: https://github.com/rtomayko/rdiscount/issues/74
Try installing the previously tagged version:
gem install rdiscount -v=1.6.8 --platform=ruby

sphinx install error

I tried to install Sphinx on MacOSX snow leopard 10.6.4. The steps I followed are:
./configure --prefix=/usr/local --with-mysql=/usr/local/mysql
make
sudo make install
While 'make', I get the following errors:
Making all in src
if test -d ../.svn; then svn info .. --xml | perl svnxrev.pl; fi;
make all-am
g++ -DHAVE_CONFIG_H -I. -I../config -DSYSCONFDIR="\"/usr/local/etc\"" -I/usr/local/include -I/usr/local/mysql/include -Os -g -fno-common -fno-strict-aliasing -arch i386 -Wall -g -D_FILE_OFFSET_BITS=64 -O3 -DNDEBUG -MT sphinx.o -MD -MP -MF .deps/sphinx.Tpo -c -o sphinx.o sphinx.cpp
In file included from /usr/include/sql.h:92,
from /usr/include/sqlext.h:82,
from sphinx.h:69,
from sphinx.cpp:14:
/usr/include/iodbcunix.h:128: error: conflicting declaration ‘typedef unsigned int DWORD’
sphinxstd.h:90: error: ‘DWORD’ has a previous declaration as ‘typedef long unsigned int DWORD’
sphinx.cpp: In function ‘char* sphStrMacro(const char*, const char*, SphDocID_t)’:
sphinx.cpp:1912: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘SphDocID_t’
sphinx.cpp: In function ‘CSphString sphDumpAttr(const CSphColumnInfo&)’:
sphinx.cpp:4784: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long unsigned int’
sphinx.cpp: In member function ‘virtual void CSphIndex_VLN::DebugDumpHeader(FILE*, const char*)’:
sphinx.cpp:14563: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘DWORD’
sphinx.cpp:14592: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’
sphinx.cpp:14631: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘DWORD’
sphinx.cpp: In member function ‘virtual void CSphIndex_VLN::DebugDumpDocids(FILE*)’:
sphinx.cpp:14647: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’
sphinx.cpp:14648: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘DWORD’
sphinx.cpp:14655: warning: format ‘%u’ expects type ‘unsigned int’, but argument 2 has type ‘long unsigned int’
sphinx.cpp:14655: warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘SphDocID_t’
sphinx.cpp: In member function ‘virtual void CSphIndex_VLN::DebugDumpHitlist(FILE*, const char*)’:
sphinx.cpp:14710: warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘SphDocID_t’
sphinx.cpp:14710: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 4 has type ‘DWORD’
sphinx.cpp: In member function ‘bool CSphSource_SQL::RunQueryStep(const char*, CSphString&)’:
sphinx.cpp:18346: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘SphDocID_t’
sphinx.cpp:18347: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘SphDocID_t’
sphinx.cpp: In member function ‘const char* CSphSource_XMLPipe2::DecorateMessageVA(const char*, char*)’:
sphinx.cpp:20238: warning: format ‘%u’ expects type ‘unsigned int’, but argument 6 has type ‘SphDocID_t’
sphinx.cpp: In member function ‘virtual bool CSphSource_ODBC::SqlQuery(const char*)’:
sphinx.cpp:21288: warning: comparison between signed and unsigned integer expressions
sphinx.cpp: At global scope:
sphinx.cpp:1741: warning: ‘g_tmInitTimer’ defined but not used
make[2]: *** [sphinx.o] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
I checked the directory of MySQL is correct.
I found the following suggestions helpful:
1. add the following parameter to configure:
--with-unixodbc=no
if you still get errors, try setting LDFLAGS to '-arch i386'
Mac OS X binaries are available for 2.0.1b from http://sphinxsearch.com/downloads/

Resources