Re: undefined reference to `_D6deimos6python6Python12__ModuleInfoZ'

2012-09-19 Thread Ellery Newcomer

On 09/19/2012 01:30 PM, Jesse Phillips wrote:

On Tuesday, 18 September 2012 at 04:56:27 UTC, Ellery Newcomer wrote:


In a templated function in my header file, I make a call to enforce.
When the function is not called [instantiated], all is well. When the
function is called, it generates yon undefined reference to
__ModuleInfoZ.

I guess this is because D needs a pointer to the module in order to
look up enforce?


What does the call to enforce look like? The error isn't from the
compiler so you are pulling in a symbol which isn't in your object files.


here is an older file, as I haven't committed recently, but it shows the 
identical call:


https://bitbucket.org/ariovistus/pyd/src/364451b5d732/infrastructure/python/python.d#cl-653

making a call to enforce elsewhere doesn't fix the linker problem.


Re: undefined reference to `_D6deimos6python6Python12__ModuleInfoZ'

2012-09-19 Thread Jesse Phillips
On Tuesday, 18 September 2012 at 04:56:27 UTC, Ellery Newcomer 
wrote:


In a templated function in my header file, I make a call to 
enforce. When the function is not called [instantiated], all is 
well. When the function is called, it generates yon undefined 
reference to __ModuleInfoZ.


I guess this is because D needs a pointer to the module in 
order to look up enforce?


What does the call to enforce look like? The error isn't from the 
compiler so you are pulling in a symbol which isn't in your 
object files.


Re: undefined reference to `_D6deimos6python6Python12__ModuleInfoZ'

2012-09-17 Thread Ellery Newcomer

On 09/17/2012 04:16 PM, Ellery Newcomer wrote:

With a deimos header file, I expect to need only to pass the dpath to it
and the library it references to dmd, e.g.

stuff
  - deimos
   - python
- Python.d

dmd  -Istuff -L-lpython2.7

I should not need to actually pass stuff/deimos/python/Python.d to dmd.

Unfortunately, that is currently not the case, and I am having a
difficult time trying to figure out what is getting in my way.

been thumbing through nm output lately.


Anyone have any suggestions?



Found one little gotcha.

In a templated function in my header file, I make a call to enforce. 
When the function is not called [instantiated], all is well. When the 
function is called, it generates yon undefined reference to __ModuleInfoZ.


I guess this is because D needs a pointer to the module in order to look 
up enforce?


undefined reference to `_D6deimos6python6Python12__ModuleInfoZ'

2012-09-17 Thread Ellery Newcomer
With a deimos header file, I expect to need only to pass the dpath to it 
and the library it references to dmd, e.g.


stuff
 - deimos
  - python
   - Python.d

dmd  -Istuff -L-lpython2.7

I should not need to actually pass stuff/deimos/python/Python.d to dmd.

Unfortunately, that is currently not the case, and I am having a 
difficult time trying to figure out what is getting in my way.


been thumbing through nm output lately.


Anyone have any suggestions?