Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
5.5.0 RC
-
None
-
Linux, 64bit , gcc 4.9.2
-
ba9f4942b0813f135d2c7208ea27a03cd5c1cae5
Description
On my system I've noticed that qt5 qmake goes into a recursive loop all the time.
I've tracked this problem to code in
void UnixMakefileGenerator::processPrlFiles().
The following code causes the problem:
QString lib = opt.right(opt.length() - 2); QString prl_ext = project->first(ProKey("QMAKE_" + lib.toUpper() + "_SUFFIX")).toQString(); for(int dep_i = 0; dep_i < libdirs.size(); ++dep_i) { const QMakeLocalFileName &lfn = libdirs[dep_i]; if(!project->isActiveConfig("compile_libtool")) { //give them the .libs.. QString la = lfn.local() + '/' + project->first("QMAKE_PREFIX_SHLIB") + lib + Option::libtool_ext; if (exists(la) && QFile::exists(lfn.local() + "/.libs")) { QString dot_libs = lfn.real() + Option::dir_sep + ".libs"; l.append("-L" + dot_libs); libdirs.insert(libidx++, QMakeLocalFileName(dot_libs)); } }
On my system I get the following:
lib is GL so la becomes /usr/lib/libGL.la and when lfn which seems to be /url/lib for me + .libs exists it will add /usr/lib/.libs to libdirs. On the next loop the same will happen and /usr/lib/.libs will just be added recursively forever.
I think the easiest fix for this would be for look if what's going to be added to libdirs wasn't already added before.