[postgis-users] shp2pgsql problems on Mac OS X Leopard
John Cartwright
john.c.cartwright at comcast.net
Thu Dec 6 08:02:19 PST 2007
It seemed to me that William Kyngesburye's (http://www.kyngchaos.com/)
version worked OK, but I don't know what his compilation options were.
-- john
Patrick Hartling wrote:
> Yes, that is what was happening for me. Without looking at the code, I
> had narrowed it down to some sort of argument processing problem. On
> my way in to the office this morning, I started wondering if it might
> not be better to use the system-provided getopt(3) for the Mac OS X
> case. I could not tell if that was the intention, but I will look into
> that as soon as I can. If I come up with something other than this
> #include removal hack, I will post a patch.
>
> -Patrick
>
> On Dec 5, 2007, at 10:35 PM, John Cartwright wrote:
>
>> 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
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
> --
> 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