Bug 985973

Summary: Compiling wxWidget applications leads to NVidia driver based error message
Product: [openSUSE] openSUSE Distribution Reporter: Forgotten User 0Pa7LREnXl <forgotten_0Pa7LREnXl>
Component: OtherAssignee: Stefan Dirsch <sndirsch>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: chcao, forgotten_0Pa7LREnXl, marcelo.jimenez
Version: Leap 42.1Flags: sndirsch: needinfo? (forgotten_0Pa7LREnXl)
sndirsch: needinfo? (marcelo.jimenez)
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Forgotten User 0Pa7LREnXl 2016-06-22 03:02:19 UTC
While compiling wxWidgets applications, I always get an error message while linking:

/usr/lib64/libnvidia-glcore.so.367.27: undefined reference to `nv_vasprintf_vsnprintf'

...which clearly leads to the (automatically installed but from a semi-external repository) NVidia driver:

nvidia-computeG04-367.27-24.1.x86_64
nvidia-gfxG04-kmp-default-367.27_k4.1.12_1-24.1.x86_64
x11-video-nvidiaG04-367.27-24.1.x86_64
nvidia-glG04-367.27-24.1.x86_64

I would suspect imcomplete packing or faulty dependency structure.
Comment 1 Andreas Stieger 2016-06-24 17:21:21 UTC
*** Bug 986427 has been marked as a duplicate of this bug. ***
Comment 2 Marcelo Jimenez 2016-06-24 18:00:33 UTC
(In reply to Andreas Stieger from comment #1)
> *** Bug 986427 has been marked as a duplicate of this bug. ***

Hi, I have just posted Bug 986427, which has been marked as a duplicate, maybe it is interesting to put the testcase here. Just link anything with -GLU to reproduce the problem. You don't need wxWidgets. Linking against opengl is broken in nvidia 367.27 G04 drivers.

I consider this to be a critical problem, since I am no longer able to generate an executable. Any ideas for a workaround, while we don't have a new driver?

Regards,
Marcelo.

testcase.c:
int main(int argc, char **argv)
{
	return 0;
}

The result is:

$ gcc -lGLU testcase.c
/usr/lib64/libnvidia-glcore.so.367.27: undefined reference to `nv_vasprintf_alloc'
/usr/lib64/libnvidia-glcore.so.367.27: undefined reference to `nv_vasprintf_vsnprintf'
/usr/lib64/libnvidia-glcore.so.367.27: undefined reference to `nv_vasprintf_free'
collect2: error: ld returned 1 exit status
Comment 3 Marcelo Jimenez 2016-06-24 19:09:00 UTC
Hi,

Just found a workaround.

Add -lGL to the line and it works fine:

$ gcc -lGL -lGLU testcase.c
Comment 4 Stefan Dirsch 2016-08-12 12:49:23 UTC
Hmm. I cannot reproduce that issue with 367.35. Could you retry with 367.35, please?
Comment 5 Marcelo Jimenez 2016-08-12 14:36:00 UTC
Hi Stefan,

I am also unable to reproduce the problem with 367.35.

$ rpm -qa | grep -i nvidia
x11-video-nvidiaG04-367.35-25.1.x86_64
nvidia-computeG04-367.35-25.1.x86_64
nvidia-gfxG04-kmp-default-367.35_k4.1.12_1-25.1.x86_64
nvidia-glG04-367.35-25.1.x86_64

$ gcc -lGLU testcase.c

$

I consider the problem solved.

Regards,
Marcelo.
Comment 6 Stefan Dirsch 2016-08-12 14:40:45 UTC
Ok. Then let's close it. :-)