unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Adrian Robert <adrian.b.robert@gmail.com>
To: Dan Nicolaescu <dann@ics.uci.edu>
Cc: emacs- devel <emacs-devel@gnu.org>
Subject: Re: warnings on gnustep
Date: Wed, 20 Aug 2008 22:50:46 -0400	[thread overview]
Message-ID: <6EF7D92A-4643-453E-928A-832C5C8430C4@gmail.com> (raw)
In-Reply-To: <200808070341.m773fZMo028893@sallyv1.ics.uci.edu>


On Aug 6, 2008, at 11:41 PM, Dan Nicolaescu wrote:

> I managed to get access to a machine that has a gnustep  
> installation.  I
> get these warnings when compiling the ns*.m files.
>
> The 'lrint' looks strange, on my Fedora systems lrint is in <math.h>
> which is included.  I haven't looked at why this happens.

Some brief googling suggests this has something to do with various C  
standards and arguments like -std=c99.  I don't understand this at  
all, but if you look in that math.h are the lrint definitions  
protected by any ifdefs?  Also I wonder what effect that -D_BSD_SOURCE  
has and where is that coming from?



> But the signal ones are probably something to worry about.

Which ones are you talking about?  (The word "signal" is not appearing  
in the warnings below.)



> BTW, I think that the includes need to be reordered, if you look in  
> all
> the other files in emacs config.h is the first file included, that is
> not the case in the ns*.m files.

Hmm, these other files also seem to include <config.h>, as if it's a  
system include, rather than "config.h".  I don't understand why.  The  
NS files include system includes first, then local ones, and  
"config.h" is the first of these.

I'm going to comment on other stuff below individually.


> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsterm.m
> nsterm.m: In function 'ns_update_end':
> nsterm.m:658: warning: 'NSView' may not respond to '- 
> unlockFocusNeedsFlush:'
> nsterm.m:658: warning: (Messages without a matching method signature
> nsterm.m:658: warning: will be assumed to return 'id' and accept
> nsterm.m:658: warning: '...' as arguments.)

Should be gone now (but someone on GNUstep please test).


> nsterm.m: In function 'ns_color_to_lisp':
> nsterm.m:1549: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m:1555: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function 'ns_mouse_position':
> nsterm.m:1765: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function 'ns_draw_window_cursor':
> nsterm.m:2375: warning: incompatible implicit declaration of built- 
> in function 'lrint'

Discussed above.



> nsterm.m: In function 'ns_read_socket':
> nsterm.m:3072: warning: 'NSApplication' may not respond to '- 
> openFile:'

I added a cast to fix this.



> nsterm.m: In function '-[EmacsApp application:openFiles:]':
> nsterm.m:4153: warning: 'EmacsApp' may not respond to '- 
> replyToOpenOrPrint:'


This whole delegate method is undeclared / unused in GNUstep.  I put  
the replyToOpenOrPrint call inside #ifndef GNUSTEP, although when it  
eventually implements it this would need updating.  Might be better to  
just live w/the warning since it will never cause an error.


> nsterm.m: In function '-[EmacsView changeFont:]':
> nsterm.m:4332: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function '-[EmacsView setMarkedText:selectedRange:]':
> nsterm.m:4570: warning: pointer type mismatch in conditional  
> expression

Not sure what the problem is here.


> nsterm.m: In function '-[EmacsView mouseDown:]':
> nsterm.m:4764: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function '-[EmacsView performDragOperation:]':
> nsterm.m:5379: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function 'ns_font_to_xlfd':
> nsterm.m:6261: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsfns.m
> nsfns.m: In function 'Fns_read_file_name':
> nsfns.m:1451: warning: pointer type mismatch in conditional expression

I added a cast to id?



> nsfns.m: In function 'Fns_convert_utf8_nfd_to_nfc':
> nsfns.m:2003: warning: no '-precomposedStringWithCanonicalMapping'  
> method found

Hmm.  I changed to check for the impl and warn/return Qnil if not  
present, but the compiler  warning will still be there.



> nsfns.m: In function 'Fxw_color_values':
> nsfns.m:2249: warning: incompatible implicit declaration of built-in  
> function 'lrint'
> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsmenu.m
> nsmenu.m: In function '-[EmacsMenu fillWithWidgetValue:]':
> nsmenu.m:684: warning: passing argument 1 of 'setAction:' from  
> incompatible pointer type

setAction: takes a SEL.  I thought nil was correct?



> nsmenu.m: In function '-[EmacsMenu addSubmenuWithTitle:forFrame:]':
> nsmenu.m:705: warning: passing argument 2 of  
> 'addItemWithTitle:action:keyEquivalent:' from incompatible pointer  
> type

Ditto.



> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsselect.m
> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsimage.m
> nsimage.m: In function '-[EmacsImage getPixelAtX:Y:]':
> nsimage.m:417: warning: 'NSBitmapImageRep' may not respond to '- 
> colorAtX:y:'
> nsimage.m:417: warning: (Messages without a matching method signature
> nsimage.m:417: warning: will be assumed to return 'id' and accept
> nsimage.m:417: warning: '...' as arguments.)
> nsimage.m: In function '-[EmacsImage  
> setPixelAtX:Y:toRed:green:blue:alpha:]':
> nsimage.m:447: warning: 'NSBitmapImageRep' may not respond to '- 
> setColor:atX:y:'
> nsimage.m: In function '-[EmacsImage setAlphaAtX:Y:to:]':
> nsimage.m:464: warning: 'NSBitmapImageRep' may not respond to '- 
> colorAtX:y:'
> nsimage.m:466: warning: 'NSBitmapImageRep' may not respond to '- 
> setColor:atX:y:'

I don't understand these.  Both methods are declared for  
NSBitmapImageRep in GNUstep:

http://www.gnustep.org/resources/documentation/Developer/Gui/Reference/NSBitmapImageRep.html#class$NSBitmapImageRep




> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsfont.m
> nsfont.m: In function 'nsfont_open':
> nsfont.m:682: warning: incompatible implicit declaration of built-in  
> function 'lrint'
> nsfont.m: In function 'nsfont_draw':
> nsfont.m:925: warning: comparison is always true due to limited  
> range of data type

cbuf and c should probably be made unsigned char, but only someone who  
can test should try this.



> nsfont.m:994: warning: pointer type mismatch in conditional expression

Unsure why, all should be NSColor *.


> nsfont.m:1019: warning: comparison between pointer and integer
> nsfont.m:1025: warning: comparison between pointer and integer

I've fixed these.



> nsfont.m: In function 'ns_glyph_metrics':
> nsfont.m:1384: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsfont.m:1389: warning: incompatible implicit declaration of built- 
> in function 'round'





       reply	other threads:[~2008-08-21  2:50 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200808070341.m773fZMo028893@sallyv1.ics.uci.edu>
2008-08-21  2:50 ` Adrian Robert [this message]
2008-08-21  6:20   ` warnings on gnustep Dan Nicolaescu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6EF7D92A-4643-453E-928A-832C5C8430C4@gmail.com \
    --to=adrian.b.robert@gmail.com \
    --cc=dann@ics.uci.edu \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).