[GRASS5] Re: pg grass darwin - working

andy agena andya at mac.com
Wed Sep 11 17:31:49 EDT 2002


Hi Glynn:

I won't be able to try config/make/install until tomorrow with  
--with-gdal, but I'll let you know how it goes.

I did try the 'gcc -E -dM foo.c', but the only output was '# 1  
"foo.c"'.  I'm not sure what your '-dM' tag was supposed to do and it  
doesn't seem to be an option in my gcc, so I've included the options I  
have for gcc (3.1) below.

this is the output from nm LIB.powerpc-apple-darwin6.0/libgeo.a; do I  
just need to [somehow] get rid of the underscores before the ax, etc?:

<snip>
libgeo.a(vars.o):
00000050 C _ax
00000050 C _ay
00000050 C _bx
00000050 C _by
00000004 C _reg_cnt
00000050 C _residuals
00000008 C _rms
00000028 C _use

what do I need to do for this 'malloc.h' bug?

Thanks again for your time,
Andy

-----

% ./gcc --help
Usage: gcc [options] file...
Options:
   -pass-exit-codes         Exit with highest error code from a phase
   --help                   Display this information
   --target-help            Display target specific command line options
   (Use '-v --help' to display command line options of sub-processes)
   -dumpspecs               Display all of the built in spec strings
   -dumpversion             Display the version of the compiler
   -dumpmachine             Display the compiler's target processor
   -print-search-dirs       Display the directories in the compiler's  
search path
   -print-libgcc-file-name  Display the name of the compiler's companion  
library
   -print-file-name=<lib>   Display the full path to library <lib>
   -print-prog-name=<prog>  Display the full path to compiler component  
<prog>
   -print-multi-directory   Display the root directory for versions of  
libgcc
   -print-multi-lib         Display the mapping between command line  
options and
                            multiple library search directories
   -Wa,<options>            Pass comma-separated <options> on to the  
assembler
   -Wp,<options>            Pass comma-separated <options> on to the  
preprocessor
   -Wl,<options>            Pass comma-separated <options> on to the  
linker
   -Xlinker <arg>           Pass <arg> on to the linker
   -save-temps              Do not delete intermediate files
   -pipe                    Use pipes rather than intermediate files
   -time                    Time the execution of each subprocess
   -specs=<file>            Override built-in specs with the contents of  
<file>
   -std=<standard>          Assume that the input sources are for  
<standard>
   -B <directory>           Add <directory> to the compiler's search  
paths
   -b <machine>             Run gcc for target <machine>, if installed
   -V <version>             Run gcc version number <version>, if  
installed
   -v                       Display the programs invoked by the compiler
   -###                     Like -v but options quoted and commands not  
executed
   -E                       Preprocess only; do not compile, assemble or  
link
   -S                       Compile only; do not assemble or link
   -c                       Compile and assemble, but do not link
   -o <file>                Place the output into <file>
   -x <language>            Specify the language of the following input  
files
                            Permissable languages include: c c++  
assembler none
                            'none' means revert to the default behavior  
of
                            guessing the language based on the file's  
extension

Options starting with -g, -f, -m, -O, -W, or --param are automatically
  passed on to the various sub-processes invoked by gcc.  In order to  
pass
  other options on to these processes the -W<letter> options must be  
used.

For bug reporting instructions, please see:
<URL:http://developer.apple.com/bugreporter>.


On Wednesday, Sep 11, 2002, at 14:29 US/Central, Glynn Clements wrote:

>
> [Note: lines which are indented with ": " are from your make.log file.]
>
> andy agena wrote:
>
>> Well, I have PostgreSQL 7.2.2 running with GRASS, though I'm not  
>> really
>> sure why (well, I do need to add my grass user account to my  
>> postgresql
>> group to use it, but g.*.pg's are now in my bin--g.select.pg only
>> squawks about me not being part of the proper group).  I added the
>> quotes around postgres-includes two paths, but that's about it.
>>
>> the only configure errors are:
>>
>> Compilation error in module: src/libes/vect32/georef (ignored)
>
> : gcc  
> -L/Users/andyagena/Desktop/grass-5_0_0_src_0/grass-5.0.0/src/libes/ 
> LIB.powerpc-apple-darwin6.0 -L/sw/lib  -o  
> /Users/andyagena/Desktop/grass-5_0_0_src_0/grass-5.0.0/dist.powerpc- 
> apple-darwin6.0/etc/geo.point  OBJ.powerpc-apple-darwin6.0/bin_point.o  
>  LIB.powerpc-apple-darwin6.0/libgeo.a -lgis -llock  -lz
> : ld: Undefined symbols:
> : _ax
> : _ay
> : _bx
> : _by
> : _use
>
> I've seen this before; it may have been reported by yourself (the
> other plausible candidate is Jeshua Lacock; I'm not aware of any other
> MacOS X users). I'm not sure if it was solved, though.
>
> These symbols should be defined in vars.o, inside libgeo.a:
>
> $ nm LIB.i686-pc-linux-gnu/libgeo.a
> [snip]
> vars.o:
> 00000050 C ax
> 00000050 C ay
> 00000050 C bx
> 00000050 C by
> 00000004 C reg_cnt
> 00000050 C residuals
> 00000008 C rms
> 00000028 C use
>
>> Compilation error in module: src/display/d.zoom (ignored)
>
> : gcc  
> -I/Users/andyagena/Desktop/grass-5_0_0_src_0/grass-5.0.0/src/include  
> -g -O2   -I/sw/include   -c set.c -o OBJ.powerpc-apple-darwin6.0/set.o
> : set.c:11: conflicting types for `round'
> : /usr/include/architecture/ppc/math.h:274: previous declaration of  
> `round'
>
>> Compilation error in module: src/imagery/i.pca (ignored)
>
> : gcc  
> -I/Users/andyagena/Desktop/grass-5_0_0_src_0/grass-5.0.0/src/include  
> -g -O2   -I/sw/include   -c main.c -o  
> OBJ.powerpc-apple-darwin6.0/main.o
> : main.c:343: conflicting types for `round'
> : /usr/include/architecture/ppc/math.h:274: previous declaration of  
> `round'
>
> A similar error has recently been reported for the latest version of
> Cygwin.
>
> Check whether your version of gcc has an option to disable C9X
> features. C9X adds several new functions to existing ANSI C headers;
> this causes problems for existing code which already uses those names
> for something else.
>
> Ultimately, GRASS will need to become C9X compatible rather quickly.
> It seems that the gcc developers have caught "free software
> developers' disease" (i.e. "anything more than three months old is
> obsolete, and no longer supported; all existing code must be upgraded
> accordingly").
>
>> Compilation error in module: src/raster/r.in.gdal (ignored)
>
> : gcc  
> -L/Users/andyagena/Desktop/grass-5_0_0_src_0/grass-5.0.0/src/libes/ 
> LIB.powerpc-apple-darwin6.0 -L/sw/lib -o  
> /Users/andyagena/Desktop/grass-5_0_0_src_0/grass-5.0.0/dist.powerpc- 
> apple-darwin6.0/etc/bin/cmd/r.in.gdal  
> OBJ.powerpc-apple-darwin6.0/main.o  
> OBJ.powerpc-apple-darwin6.0/gbgetsymbol.o  
> OBJ.powerpc-apple-darwin6.0/gdalbridge.o  
> OBJ.powerpc-apple-darwin6.0/make_loc.o \
> : 	-ldl -lgis -lI -lproj  -lz
> : ld: Undefined symbols:
> : _GBGetSymbol
>
> This is defined in src/raster/r.in.gdal/gbgetsymbol.c. There are two
> implementations:
>
> 1. The Unix dlopen/dlsym version, which is conditionalised upon:
>
> 	#if defined(__unix) || defined(__unix__)
>
> 2. The Windows LoadLibrary/GetProcAddress version, which is
> conditionalised upon:
>
> 	#ifdef _WIN32
>
> Presumably your gcc defines neither __unix nor __unix__; do you have
> any idea what it does define? Try "gcc -E -dM foo.c", where foo.c is
> an empty file.
>
> Also, you could try linking directly against GDAL, instead of using
> the "bridge" (dynamic loading) code, by using the --with-gdal
> configure switch.
>
>> Compilation error in module: src/raster/r.sun (ignored)
>
> : gcc  
> -I/Users/andyagena/Desktop/grass-5_0_0_src_0/grass-5.0.0/src/include  
> -g -O2   -I/sw/include   -c main.c -o  
> OBJ.powerpc-apple-darwin6.0/main.o
> : main.c:46: header file 'malloc.h' not found
>
> This is a straight bug (probably from someone who learned to program
> with Borland C, where malloc() really is in "malloc.h"). According to
> ANSI, the correct header is <stdlib.h>.
>
>> Compilation error in module:  
>> src.contrib/GMSL/g3d/src3d/sites/s.vol.rst
>> (ignored
>
> gcc  
> -I/Users/andyagena/Desktop/grass-5_0_0_src_0/grass-5.0.0/src/include  
> -g -O2   -I/sw/include   -c main.c -o  
> OBJ.powerpc-apple-darwin6.0/main.o
> main.c:33: header file 'malloc.h' not found
>
> Ditto.
>
> -- 
> Glynn Clements <glynn.clements at virgin.net>




More information about the grass-dev mailing list