[omniORB] omniorb with gcc 4.4 : getline, getopt, EOF

Michael omniorb at bindone.de
Wed May 6 15:50:20 BST 2009


This doesn't seem to be a gcc 4.4 issue, but depend on the standard C
library shipped with your OS. Should be fixed anyway :)

Jiang Wei wrote:
> $ gcc --version
> gcc (GCC) 4.4.0 20090427 (Red Hat 4.4.0-3)
> 
> 
> $ configure & make
> ... ...
> make[3]: Entering directory `/home/jw/omni/build/src/tool/omkdepend'
> gcc -c -O  -DDEBUG -I. -I../../../../src/tool/omkdepend -I../../../include -
> I../../../../include -D__OSVERSION__=2 -D__linux__ -D__x86__ -o include.o 
> ../../../../src/tool/omkdepend/include.c
> In file included from ../../../../src/tool/omkdepend/include.c:31:
> ../../../../src/tool/omkdepend/def.h:132: error: conflicting types for 
> 'getline'
> /usr/include/stdio.h:653: note: previous declaration of 'getline' was here
> 
> 
> $ rename getline to get_line, and make 
> ...
> ../../../../../src/appl/utils/catior/catior.cc: In function 'int main(int, 
> char**)':
> ../../../../../src/appl/utils/catior/catior.cc:363: error: 'EOF' was not 
> declared in thi	
> 
> ../../../../../src/appl/utils/convertior/convertior.cc: In function 'int 
> main(int, char**)':
> ../../../../../src/appl/utils/convertior/convertior.cc:153: error: 'EOF' was 
> not declared in this scope
> 
> 
> $ man getopt
> 
>      The getopt() function was once specified to return EOF instead of -1.
>      This was changed by IEEE Std 1003.2-1992 ("POSIX.2") to decouple getopt()
>      from <stdio.h>.
> 
> $ change EOF to -1 & make , Successed.
> 
> $ cvs diff -u
> 
> 
> Index: src/appl/utils/catior/catior.cc                                                  
> ===================================================================                     
> RCS file: /cvsroot/omniorb/omni/src/appl/utils/catior/Attic/catior.cc,v                 
> retrieving revision 1.14.2.3                                                            
> diff -u -r1.14.2.3 catior.cc                                                            
> --- src/appl/utils/catior/catior.cc     22 May 2005 12:39:44 -0000      
> 1.14.2.3        
> +++ src/appl/utils/catior/catior.cc     6 May 2009 12:38:04 -0000                       
> @@ -360,7 +360,7 @@                                                                     
>    int hexflag = 0;                                                                     
>    int omniflag = 0;                                                                    
>                                                                                         
> -  while((c = getopt(argc,argv,"xo")) != EOF) {                                         
> +  while((c = getopt(argc,argv,"xo")) != -1) {                                          
>      switch(c) {                                                                        
>      case 'x':                                                                          
>        hexflag = 1;                                                                     
> Index: src/appl/utils/convertior/convertior.cc                                          
> ===================================================================                     
> RCS file: 
> /cvsroot/omniorb/omni/src/appl/utils/convertior/Attic/convertior.cc,v         
> retrieving revision 1.11.2.3                                                            
> diff -u -r1.11.2.3 convertior.cc                                                        
> --- src/appl/utils/convertior/convertior.cc     22 May 2005 12:39:43 -0000      
> 1.11.2.3
> +++ src/appl/utils/convertior/convertior.cc     6 May 2009 12:38:04 -0000               
> @@ -150,7 +150,7 @@                                                                     
>                                                                                         
>    int c;                                                                               
>                                                                                         
> -  while((c = getopt(argc,argv,"x")) != EOF)                                            
> +  while((c = getopt(argc,argv,"x")) != -1)                                             
>      {                                                                                  
>        switch(c)                                                                        
>         {                                                                               
> Index: src/tool/omkdepend/def.h                                                         
> ===================================================================                     
> RCS file: /cvsroot/omniorb/omni/src/tool/omkdepend/Attic/def.h,v                        
> retrieving revision 1.4.2.4                                                             
> diff -u -r1.4.2.4 def.h                                                                 
> --- src/tool/omkdepend/def.h    12 Dec 2008 12:13:19 -0000      1.4.2.4                 
> +++ src/tool/omkdepend/def.h    6 May 2009 12:38:04 -0000                               
> @@ -129,7 +129,7 @@                                                                     
>                                                                                         
>  char                   *copy();                                                        
>  char                   *base_name();                                                   
> -char                   *getline();                                                     
> +char                   *get_line();                                                    
>  struct symtab          *slookup();                                                     
>  struct symtab          *isdefined();                                                   
>  struct symtab          *fdefined();                                                    
> Index: src/tool/omkdepend/main.c                                                        
> ===================================================================                     
> RCS file: /cvsroot/omniorb/omni/src/tool/omkdepend/Attic/main.c,v                       
> retrieving revision 1.8.2.3                                                             
> diff -u -r1.8.2.3 main.c                                                                
> --- src/tool/omkdepend/main.c   29 Dec 2008 14:38:31 -0000      1.8.2.3                 
> +++ src/tool/omkdepend/main.c   6 May 2009 12:38:04 -0000                               
> @@ -470,7 +470,7 @@                                                                     
>   * Get the next line.  We only return lines beginning with '#' since that
>   * is all this program is ever interested in.
>   */
> -char *getline(filep)
> +char *get_line(filep)
>         register struct filepointer     *filep;
>  {
>         register char   *p,     /* walking pointer */
> Index: src/tool/omkdepend/parse.c
> ===================================================================
> RCS file: /cvsroot/omniorb/omni/src/tool/omkdepend/Attic/parse.c,v
> retrieving revision 1.2.2.3
> diff -u -r1.2.2.3 parse.c
> --- src/tool/omkdepend/parse.c  29 Dec 2008 14:38:31 -0000      1.2.2.3
> +++ src/tool/omkdepend/parse.c  6 May 2009 12:38:04 -0000
> @@ -45,7 +45,7 @@
>         register int    type;
>         boolean recfailOK;
> 
> -       while (line = getline(filep)) {
> +       while (line = get_line(filep)) {
>                 switch(type = deftype(line, filep, file_red, file, TRUE)) {
>                 case IF:
>                 doif:
> @@ -170,7 +170,7 @@
>         register char   *line;
>         register int    type;
> 
> -       while (line = getline(filep)) {
> +       while (line = get_line(filep)) {
>                 switch(type = deftype(line, filep, file_red, file, FALSE)) {
>                 case IF:
>                 case IFFALSE:
> 
> 
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list



More information about the omniORB-list mailing list