> > > Maybe the problem is that nothing else uses these symbols? Try > > > sticking dummy references (e.g. an unreachable call) to them in > > > main.c, to see if that makes a difference. I recall we had to > > > do this for something else that wasn't used by Python itself. > > > > I tried this just now, but to no avail. Maybe I am not being > > thorough enough. If the linker is excluding these symbols because > > they are not used, why would nm seem to say they are there, and > > why would statically linking libpython work (on FreeBSD, anyway)? > > Conversely, I seem to remember this working on an earlier, but > > abandoned attempt I made on a Linux box. > > > It turns out I wasn't being thorough enough. I used nm on my python > build, and didn't see the symbols there. I moved the dummy calls to > a global function in python.c and only then were the symbols linked > into the interpreter. > > Keeping a dummy function in one of the core modules doesn't seem > like a terribly elegant solution, even if it allows me to keep > developing the pgen module. What would you suggest be done to > ensure that statically linked builds link those symbols? I would > assume that since the required symbols *are* in libpython (per my > modifications to Makefile.pre.in), building a python using dynamic > libraries would allow the extension module to "see" those symbols. Yes, I think building a shared lib would work. But we don't build shared libs for all platforms. > You had mentioned doing something like this before. Is there some > linkage graveyard where I can bury calls to these symbols in order > to ensure they are linked? Or are some of those fancy API macros > used to ensure linkage (perhaps by API functions that are utilities > for extension writers and not needed by the python core)? No, AFAIK you have to create a dummy reference somewhere. I'd suggest adding it to the end of Python/pythonrun.c. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4