[ python-Bugs-1568243 ] init_types

SourceForge.net noreply at sourceforge.net
Thu Oct 5 11:17:31 CEST 2006


Bugs item #1568243, was opened at 2006-09-30 09:34
Message generated for change (Comment added) made by krisvale
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1568243&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Build
Group: Python 2.5
Status: Open
Resolution: None
Priority: 6
Submitted By: Bosko Vukov (bvukov)
Assigned to: Kristján Valur (krisvale)
Summary: init_types

Initial Comment:
I tried to build the final version of Python 2.5, and
found that function init_types in file Python-ast.c is
created as
int init_types(void) ....
but in file config.c it's declared as
extern void init_types(void);
Visual Studio 2005 didn't want to build the project
until I changed the config.c to be the same...
extern int  init_types(void);
Nothing big ;)
Regards, Bosko


----------------------------------------------------------------------

>Comment By: Kristján Valur (krisvale)
Date: 2006-10-05 09:17

Message:
Logged In: YES 
user_id=1262199

the pcbuild8.vcproj in the Python trunk has this fixed.  I
will backport that tho 2.5 shortly.

----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2006-10-03 12:11

Message:
Logged In: YES 
user_id=21627

Kristijan, can you please backport your changes to the 2.5
trunk and then close this report?

----------------------------------------------------------------------

Comment By: Coatimundi (coatimundi)
Date: 2006-10-02 19:22

Message:
Logged In: YES 
user_id=1611513

Thanks, loewis.  I take your advice.  

I see that things have changed in SVN anyway.  I like the
new approach of using Visual STudio's configuration
management.  

When I (try to) build PGIRelease to instrument the python
dll, I get a curious error:

1>Compiling...
1>zlibmodule.c
1>Compiling resources...
1>Linking...
1>   Creating library
Win32\PGIRelease\pythoncore/python26.lib and object
Win32\PGIRelease\pythoncore/python26.exp
1>Generating code
1>c:\Documents and Settings\kferrio\My
Documents\Dev\Python-2.5\Modules\zipimport.c : fatal error
C1350: error loading dll 'pgodb80.dll': dll not found
1>LINK : fatal error LNK1257: code generation failed
1>Build log was saved at "file://c:\Documents and
Settings\kferrio\My
Documents\Dev\Python-2.5\PCbuild8\Win32\PGIRelease\pythoncore\BuildLog.htm"
1>pythoncore - 2 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0
skipped ==========

I definitely do not understand this -- yet.  Meanwhile, any
clues would be welcome.

Thanks.

----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2006-10-02 19:08

Message:
Logged In: YES 
user_id=21627

I think you should avoid building pythoncore_pgo; it's of no
use. 

Or else, study all documentation you can find on Microsoft's
profile-guided-optimization for a few days, read all web
logs about the bugs in this software, and perhaps you can
succeed in building it, by deleting the right files in the
right order.

----------------------------------------------------------------------

Comment By: Coatimundi (coatimundi)
Date: 2006-10-02 18:28

Message:
Logged In: YES 
user_id=1611513

I am expereincing the problem described by the original
poster.  I undertand that MSVC8 is not officially supported,
and I'm trying anyway.

I downloaded the 2.5.0 final tarball and began working in
the PCbuild8 directory.

Firts off, I found that I had to build two projects before
pythoncore would build: 

  make_versioninfo
  make_buildinfo

When I tried to build pythoncore, I got the linker error
saying that _init_types could not be found.  So I added
_typesmodule.c to the pythoncore project.  Finally,
pythoncore built cleanly.

Next up, I wanted to build pythoncore_pgo.  So I added 
_typesmodule to this project also.  But try as I might,
every attempt to build pythoncore_pgo produces the link
error on _init_types.  (I also did a 'clean' on pythoncore
just to be safe.)

I do not understand this.  Unlike the original poster, I
have not modified any source.  It seems like the definition
of pyMODINIT_FUNC as extern "C" void might be involved, but
I agree with gbrandl that the static int in Python-ast.c is
not the issue, because that is a different scope.  

So the linkage problem with pythoncore_pgo remains a mystery
to me.  I hope someone has more clues than me.



----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2006-10-02 14:00

Message:
Logged In: YES 
user_id=21627

Notice that the PCbuild8 directory isn't really supported...

In any case, the bug is that PCbuild8 does not have the
reference to _typesmodule, not that init_types in
Python-ast.c is static.

If you revert your change to Python-ast.c, and change
pythoncore.vcproj, it should build fine.

This is already fixed in r51751 in the trunk; not sure
whether backporting it is necessary.


----------------------------------------------------------------------

Comment By: Bosko Vukov (bvukov)
Date: 2006-09-30 17:50

Message:
Logged In: YES 
user_id=1292849

I opened solution file from folder PCbuild8, and inside
project file pythoncore.vcproj there is no reference to
_typesmodule.c. It exists in pythoncore.vcproj in the
PBbuild folder ( for older version's ). I added the missing
_typesmodule.c inside, and returned back the changes I made,
and aft er that linker reported 'Python-ast.obj : error
LNK2005: _init_types already defined in _typesmodule.obj'

----------------------------------------------------------------------

Comment By: Georg Brandl (gbrandl)
Date: 2006-09-30 11:27

Message:
Logged In: YES 
user_id=849994

The problem is another one: The config.c init_types function
belongs to the _types module, while the Python-ast.c
init_types is an internal function. They shouldn't clash.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1568243&group_id=5470


More information about the Python-bugs-list mailing list