[postgis-users] shp2pgsql problems on Mac OS X Leopard

John Cartwright john.c.cartwright at comcast.net
Wed Dec 5 20:35:57 PST 2007


Hi Patrick,

I think I ran into the same problem, but didn't realize what the  
underlying issue was.  Just found that shp2pgsql kept complaining  
about the inability to open valid shapefiles.

--john


On Dec 5, 2007, at 9:32 AM, Patrick Hartling wrote:

> I have run into a rather perplexing problem with shp2pgsql from  
> PostGIS 1.3.1 and 1.3.2 on Mac OS X Leopard. As far as I can tell,  
> the optarg and optind variables declared in ParseCmdline() of loader/ 
> shp2pgsql.c are being linked to the globals declared in unistd.h  
> rather than those in loader/getopt.h. The result is that references  
> to these variables in ParseCmdline() give the wrong values.  
> Specifically, optarg is always NULL, and optind is 0 until the loop  
> in lines 1363 through 1377.
>
> Looking at the output from the preprocessor, optarg, optind, opterr,  
> and optopt are all  declared twice. The first is from unistd.h, and  
> the second is from PostGIS' loader/getopt.h. If I remove the  
> #include directive for unistd.h, shp2pgsql compiles, links, and runs  
> correctly, although there is a compiler warning saying that getopt()  
> is not declared.
>
> My guess is that there is some compiler or linker option that might  
> fix this behavior, but I have not been able to determine what that  
> might be. Removing the inclusion of unistd.h does not seem like the  
> best fix, but it is a workaround that gets things running for me.
>
> -Patrick
>
>
> --
> Patrick L. Hartling
> Senior Software Engineer, Priority 5
> http://www.priority5.com/
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users




More information about the postgis-users mailing list