[Python-Dev] extension module .o files wind up in the wrong place
Jack Jansen
Jack.Jansen@cwi.nl
Wed, 4 Dec 2002 12:02:07 +0100
On Tuesday, Dec 3, 2002, at 09:17 Europe/Amsterdam, Martin v. L=F6wis=20
wrote:
> Greg Ewing <greg@cosc.canterbury.ac.nz> writes:
>
>> If this involves VPATH, I think I might know what's happening --
>> something similar happened to me recently.
>>
>> Have you by any chance previously done a non-VPATH build in the =
source
>> tree?
>
> I get the same problem when building in the source directory
> (/usr/src/python). VPATH is not set in the Makefile, and the
> compilation commands read like this
>
> gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -I.=20
> -I/usr/src/python/./Include -I/usr/local/include=20
> -I/usr/src/python/Include -I/usr/src/python -c=20
> /usr/src/python/Modules/regexmodule.c -o=20
> /usr/src/python/Modules/regexmodule.o
>
> I believe this is triggered by the change
>
> ----------------------------
> revision 1.45
> date: 2001/08/05 22:31:19; author: jackjansen; state: Exp; lines:=20=
> +63 -6
> Replace moddir and incdir by
> moddirlist and incdirlist, lists of source and include
> directories that are searched for modules.
> This is needed because the Mac modules and include files
> live in the Mac subtree.
I backed up to 1.44, but I still see the same problem. And it stands to=20=
reason: my find_module_file()
call was a replacement for os.path.join(moddir, filename). And with=20
moddir being an absolute path
this will also return an absolute path.
I am tempted to think that this problem has always existed, but has=20
gone unnoticed until now.
Now that I know about the problem it clears up some strange behaviour=20
I've seen in the past.
I would love to see this fixed, but I'm afraid I'm not the person to do=20=
it. Distutils
never ceases to amaze me, and it's path-mangling tricks are beyond me.=20=
I'm pretty sure that
if we somehow stuff "../Modules/regexmodule.c" (assuming we're building=20=
in a subdir of the main dir)
into the list of module sources we'll get something like=20
build/tmp.blabla/../Modules/regexmodule.o
for the object filename.
Does anyone else feel up to fixing this?
--
- Jack Jansen <Jack.Jansen@oratrix.com> =20
http://www.cwi.nl/~jack -
- If I can't dance I don't want to be part of your revolution -- Emma=20
Goldman -