[Bug 218356] New: pvm3 package has incomplete (-> broken) support for shared libraries
https://bugzilla.novell.com/show_bug.cgi?id=218356 Summary: pvm3 package has incomplete (-> broken) support for shared libraries Product: SUSE Linux 10.1 Version: Final Platform: x86-64 OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: Development AssignedTo: pth@novell.com ReportedBy: jan@etpmod.phys.tue.nl QAContact: qa@suse.de The email correspondence between a PVM3 developer and myself explains the problem in detail. On Thu, Nov 02, 2006 at 10:02:29PM +0100, Jan van Dijk wrote:
Good evening,
First of all, I apologise if this question has been answered already; unfortunately I did not find a publically available archive of this list, and I googled to no avail.
We have an application that requires (dynamic) linking against pvm3 and gpvm3. On our system (SuSE linux x86_64), libpvm3.so is available, but I could not find a libgpvm3.so. Linking against libgpvm3.a does not work because that library has been built without -fpic. The message we get is:
/usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld: /usr/lib/pvm3/lib/LINUX64/libpvm3.a(lpvmgen.o):
relocation R_X86_64_32 against `pvmmyctx' can not be used when making a shared object; recompile with -fPIC /usr/lib/pvm3/lib/LINUX64/libpvm3.a: could not read symbols: Bad value
I inspected the pvm3.4.5 source code, and saw that indeed in the pvmgs/ directory support for creating libgpvm3.so is missing in Makefile.mak. I noticed that support for creating a .dll *is* present.
Is this merely an oversight? Could a .so be built, just like support for building libpvm.so is present in src/LINUX64/Makefile? Is somebody working on this? If not, could libgpvm3.a be built with -fpic (by default) so it can be linked against when libpvm3.so is used?
Thank you for your reply. If some of my questions do not make sense, please note that I am utterly unfamiliar with the build system used by PVM.
Jan van Dijk.
Hi Jan, Well, the core distribution of PVM, that we maintain, doesn't have _any_ support for shared objects per se... :-) I suspect that someone at SuSE went ahead and added some make targets to produce a shared object for the latest Linux kernel, but it is impractical for us to generally provide this capability for the vast collection of system architectures that PVM supports. Anyway, disclaimers aside, if they've maintained the basic Makefile and Makefile.aimk infrastructure in the SuSE rpm, then you should be able to edit the top level: pvm3/Makefile.aimk and add "-fPIC" to the $CFLOPTS define (and make sure then that $PVMOPTS includes $CFLOPTS, as in: CC = cc F77 = f77 CFLOPTS = -fPIC PVMOPTS = CC="$(CC)" F77="$(F77)" CFLOPTS="$(CFLOPTS)" then you can do a "make g" to build the libgpvm3 objects with the right flag. (Of course, if SuSE has changed the build structure, then who knows where things are now... :-Q) Unfortunately, either way, to actually build the libgpvm3.so file, you'll need to manually assemble the object files, but the list is short: cc -shared -o libgpvm3.so pvmgsu_core.o pvmgsu_aux.o pvmgs_func.o Hope this helps! Sorry the solution isn't more automatic... :-] (Perhaps you should point this omission out to the SuSE folks...? :) All the Best, Jim P.S. Note: the Makefile.mak file you've found in pvm3/pvmgs is for Win32 systems, not Linux...! :-) -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 pth@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pth@novell.com AssignedTo|pth@novell.com |mrueckert@novell.com Summary|pvm3 package has incomplete |Shared version of libgpvm3 missing in pcm |(-> broken) support for |package |shared libraries | ------- Comment #1 from pth@novell.com 2006-11-06 09:07 MST ------- Reassigning to pvm maintainer. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 mrueckert@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED ------- Comment #2 from mrueckert@novell.com 2006-11-06 09:15 MST ------- the problem is ... i can build a static library with -fPIC. which is needed, if you want to link libgpvm3 into another shared library. anyway. upstream should do the same if the release a new version. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 ------- Comment #3 from jan@etpmod.phys.tue.nl 2006-11-06 09:30 MST ------- (In reply to comment #2) As you can see from my initial comment, upstream (the pvm developers) do not support shared libraries at all. That is a SuSE addition (Thank You!), unfortunately an incomplete one. Just compiling libgpvm3.a with -fpic seems to be an appropriate intermediate fix, as long as .so support is missing. I tested this locally by simply adding -fpic to the make command in the pvm.spec file, resulting in: make OPT_FLAGS="$RPM_OPT_FLAGS -fpic -fno-strict-aliasing" The resulting rpm's work fine, the libs therein can be used as intended. Thanks, Jan. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 ------- Comment #4 from mrueckert@novell.com 2006-11-06 09:41 MST ------- we dont support a shared library either. the error is from /usr/lib/pvm3/lib/LINUX64/libpvm3.a(lpvmgen.o). as you see a static library aswell. while building without -fPIC works fine on ia32 due a hack, it fails on x86_64 and other 64bit architectures. so the only reason to recompile pvm3 with -fPIC is to make it work on 64bit architectures. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 garloff@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |garloff@novell.com ------- Comment #5 from garloff@novell.com 2006-11-06 15:55 MST ------- So why don't we just do it? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 ------- Comment #6 from mrueckert@novell.com 2006-11-06 17:44 MST ------- it is already done. i just wait for the OK from aj to do it for 10.1. for 10.2 i have a fixed package already. if aj rejects the update i will provide it via the buildservice. :) it might fit into the "science" project we created last week. for more see: http://software.opensuse.org/download/science i will talk to aj tomorrow. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 ------- Comment #7 from aj@novell.com 2006-11-07 06:11 MST ------- approved for 10.1. MaintenanceTracker-6928 -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 mrueckert@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED ------- Comment #8 from mrueckert@novell.com 2006-11-09 12:33 MST ------- submitted. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 ------- Comment #9 from jan@etpmod.phys.tue.nl 2006-11-10 05:51 MST ------- (In reply to comment #8)
submitted.
Thank you and your team for this swift fix. Since I am not familiar with your development process, could you tell me what happens next? Does 'submitted' mean that packages will become available as updates automatically? Where? When? Do I need to undertake any action, or will the Updater prompt me when 'build 25' becomes available? A pointer to a location where I can read such info is appreciated. Thank you once more. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 ------- Comment #10 from suse-beta@cboltz.de 2006-11-10 16:20 MST ------- (In reply to comment #7)
approved for 10.1. MaintenanceTracker-6928
It will be available as online update, but this might need some time because update packages usually need to pass QA (quality assurance) before they are made available. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=218356 ------- Comment #11 from ast@novell.com 2006-11-27 04:39 MST ------- released -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
participants (1)
-
bugzilla_noreply@novell.com