View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0010090CMakeModulespublic2010-01-04 11:452011-03-18 14:09
ReporterAndreas Schneider. 
Assigned ToBrad King 
PrioritynormalSeveritytweakReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product VersionCMake-2-8 
Target VersionFixed in Version 
Summary0010090: check_prototype_definition() - Check if the protoype we expect is correct
Descriptioncheck_prototype_definition(FUNCTION PROTOTYPE RETURN HEADER VARIABLE)

This check if the function exists and the prototype we want to use is correct. There are still functions which have different prototypes on UNICES :(

check_prototype_definition(getpwent_r
     "struct passwd *getpwent_r(struct passwd *src, char *buf, int buflen)"
     "NULL"
     "unistd.h;pwd.h"
     SOLARIS_GETPWENT_R)

Comments are welcome :)
TagsNo tags attached.
Attached Files? file icon CheckPrototypeDefinition.cmake [^] (4,003 bytes) 2010-01-04 11:45
? file icon CheckPrototypeDefinition.c.in [^] (514 bytes) 2010-01-04 11:46
patch file icon 0002-Added-a-check-to-verify-that-a-protoype-we-expect-is.patch [^] (5,994 bytes) 2010-03-11 05:16 [Show Content]

 Relationships
related to 0011565closedKitware Robot CHECK_{FUNCTION,LIBRARY}_EXISTS() macros need a way to specify function declaration 

  Notes
(0024791)
David Cole (manager)
2011-01-17 14:34

A worthy addition? Better than what we have now?
(0024797)
Brad King (manager)
2011-01-17 15:01

Yes, this is interesting.

It looks like the implementation depends on the compiler to complain if the specified prototype does not match the original declaration in the header file. What happens if the system header actually defines the "function" as a macro?
(0025376)
Andreas Schneider. (developer)
2011-02-10 12:43

Well this only works for functions and it is looking for the symbol. Normally these functions you're looking for aren't macros and it is a bad idea to have them as a macro cause you can't dlsym() them.
(0025377)
Andreas Schneider. (developer)
2011-02-10 12:43

IIRC this is more or less the same what the autofools do.
(0025803)
Andreas Schneider. (developer)
2011-03-18 09:15

Pushed to the staging server with a test case. Waiting for review!
(0025818)
Brad King (manager)
2011-03-18 14:07

Merged to next, thanks:

  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4f252abe [^]
  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=93c56a70 [^]
  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=030f83de [^]

 Issue History
Date Modified Username Field Change
2010-01-04 11:45 Andreas Schneider. New Issue
2010-01-04 11:45 Andreas Schneider. File Added: CheckPrototypeDefinition.cmake
2010-01-04 11:46 Andreas Schneider. File Added: CheckPrototypeDefinition.c.in
2010-03-11 05:16 Andreas Schneider. File Added: 0002-Added-a-check-to-verify-that-a-protoype-we-expect-is.patch
2011-01-17 14:33 David Cole Assigned To => Brad King
2011-01-17 14:33 David Cole Status new => assigned
2011-01-17 14:34 David Cole Note Added: 0024791
2011-01-17 14:34 David Cole Relationship added related to 0011565
2011-01-17 15:01 Brad King Note Added: 0024797
2011-02-10 12:43 Andreas Schneider. Note Added: 0025376
2011-02-10 12:43 Andreas Schneider. Note Added: 0025377
2011-03-18 09:15 Andreas Schneider. Note Added: 0025803
2011-03-18 14:07 Brad King Note Added: 0025818
2011-03-18 14:09 Brad King Status assigned => closed
2011-03-18 14:09 Brad King Resolution open => fixed


Copyright © 2000 - 2018 MantisBT Team