Jump to content

Load .so Error Help!


Recommended Posts

Hello,

So, my custom command compiles fine but will not load into Houdini. In fact, none of the HDK examples will load, here I tried the CHOP_Stair example and I get this error on startup:

/home/pbowmar/houdini8.0/dso/CHOP_Stair.so: failed to map segment from shared object: Operation not permitted

I'm on SuSE 9.3, using the RH 9 build of 8.0.343

The exact same code works fine on RH 7.3 using the 7.3 build of 8.0.343

Help?

Cheers,

Peter B

Link to comment
Share on other sites

Well, I just tried 7.0.363 and it worked just fine on SuSE so there's something amiss somewhere :)

Not quite sure, but just to let you know that I've compiled all our dso's for 8.0.343 on RH9 just fine the other day. Maybe its a SUSE thing?

20894[/snapback]

Link to comment
Share on other sites

Guest xionmark
/home/pbowmar/houdini8.0/dso/CHOP_Stair.so: failed to map segment from shared object: Operation not permitted

20892[/snapback]

Hi Peter,

That is odd. Did the linking stage produce any unusual error messages? It's sounds like the run time loader can't resolve names/addresses, I wouldn't think it's a permissions unless for some reason it's trying to load into protected memory. Very strange. Have you tried starting with a debugger and follow the loading of the DSOs?

--Mark

Link to comment
Share on other sites

Whoa! Slow down there Brainiac! I understood the second sentence, and no, it compiled just fine, no errors/messages.

The rest, I have no idea (well, a limited idea) what you're talking about :)

I used to know about the debugger, but have forgotten. How do I run under the debugger again?

Cheers,

peter B

Hi Peter,

That is odd.  Did the linking stage produce any unusual error messages?  It's sounds like the run time loader can't resolve names/addresses, I wouldn't think it's a permissions unless for some reason it's trying to load into protected memory.  Very strange.  Have you tried starting with a debugger and follow the loading of the DSOs?

--Mark

20905[/snapback]

Link to comment
Share on other sites

Guest xionmark
Whoa! Slow down there Brainiac! I understood the second sentence, and no, it compiled just fine, no errors/messages.

The rest, I have no idea (well, a limited idea) what you're talking about :)

I used to know about the debugger, but have forgotten. How do I run under the debugger again?

Cheers,

peter B

20908[/snapback]

:blink: Sorry Peter, stream of thought in my reply.

As far as linking messages, it sounds like nothing happened that was critical enough for the linker (the utility that "bundles" the various object files into a .so or executable file) to fail. However, sometimes the linker will happily finish it's work and just warn you that there may be name collisions, unresolved stuff that can only show up at run time.

Thus the mention of the run time loader which is the guy that will load a DSO (while the applicatin is running) when it's either just launching the application or there's an explicit request to do so as the app is running. What sometimes happens is that the run time loader (RLD) can't resolve the names of the functions, variables, etc. to properly "fit it" into memory (it' hard to describe without a white board handy).

The other issue I mentioned, protected memory, it that memory is split up into areas that are "owned" by processes related to users, and supervisors (root, et al.) and sometimes the RLD will try to perform an operation in memory that it's memory space doesn't have "permission" to do. Most of the time you get a seg fault from this but it depends on what was being attempted and other circumstances.

I assume that SUSE uses the gcc suite of tools right? I would think gdb would be a good starting point for a debugger but it sounds like this might be new to you and it probably take more time for you to learn it than desired, it can be tedious at times especially with an applcation like Houdini, which is not trivial in it's structure.

It sounds like this might be a better question posed to those who are more familiar with SUSE, which I'm not. Maybe it's a library issue, not sure.

My brain's not working to well today, got a bad cold, trying to make sense of this through a cough syrup induced fog. Hope I didn't confuse you further.

--Mark

Link to comment
Share on other sites

Hi!

The problem with SuSE is, that they deliver a prerelease version of the compiler, which is buggy. It's sad.

It is even worse (Warning, field report of a programmer ;-): Compiling your own compiler doesn't solve the problem. I'm using the 4.0 version of gcc, which I always compile on my own, when I'm in front of a new system (for those who are familiar with this, I'm not using bootstrapping). Now I'm using this compiler to compile Qt4 (The gui library from the trolltech guys). I was doing this on several SuSE boxes (8.3, 9.2 and 9,3) and on my ubuntu box. So on all systems I had the same compiler and the same sources of the library. The problem on the newer SuSE boxes was, that compilation of Qt4 aborted with an internal compiler error, The older SuSE (8.3) and ubuntu went ok. The only conclusion, that could be drawn was, that the buggy SuSE 9 system compiler introduced a bug in my 4.0 version of gcc, that would then cause the internal compiler error :-(

I could go on and tell you other stories about the SuSE compilers, but this would go beyond the scope of this thread.

I don't want to tell you, that your problems are due to the prerelease compiler shipping with SuSE, but you should take this possibility into account.

Link to comment
Share on other sites

Hi Frank,

Thanks for the thoughts, that's entirely possible. However, here at work, we also use SuSE 9.3 and everything compiles just fine (as far as I know, anyways).

I might move to Centos4.1 on my laptop too, I've been running it on my desktop and it's working fine and it's free :)

Cheers,

Peter B

Hi!

The problem with SuSE is, that they deliver a prerelease version of the compiler, which is buggy. It's sad.

It is even worse (Warning, field report of a programmer ;-): Compiling your own compiler doesn't solve the problem. I'm using the 4.0 version of gcc, which I always compile on my own, when I'm in front of a new system (for those who are familiar with this, I'm not using bootstrapping). Now I'm using this compiler to compile Qt4 (The gui library from the trolltech guys). I was doing this on several SuSE boxes (8.3, 9.2 and 9,3) and on my ubuntu box. So on all systems I had the same compiler and the same sources of the library. The problem on the newer SuSE boxes was, that compilation of Qt4 aborted with an internal compiler error, The older SuSE (8.3) and ubuntu went ok. The only conclusion, that could be drawn was, that the buggy SuSE 9 system compiler introduced a bug in my 4.0 version of gcc, that would then cause the internal compiler error :-(

I could go on and tell you other stories about the SuSE compilers, but this would go beyond the scope of this thread.

I don't want to tell you, that your problems are due to the prerelease compiler shipping with SuSE, but you should take this possibility into account.

20913[/snapback]

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...