Open josemq opened 6 years ago
Thanks for your error report. I have confirmed the compile errors you are seeing.
Although I do not have commit access to this repo, I have posted a branch elsewhere with fixes that I believe should help resolve your problem. It addresses the following three items:
make
.make clean
in both the top level directory and the libStatGen
folder. In the future we will be migrating this build process over to use CMake.If your problem is not covered by the above, see the wiki compiling instructions and FAQ. I'd be happy to update the documentation with any missing information.
I realize that having so many copies of the code is a bit confusing- so, this afternoon I will work on copying this repo over to our statgen GitHub organization, which will be the future home of all new development. I'll send that URL along shortly and we'll try to change any links that point here.
Here is the link for the new home of this repo as mentioned earlier: https://github.com/statgen/Raremetal2
If you work from that repo as your starting point, the master
branch should incorporate the compile bugfixes mentioned above. If this works for you, we can close this issue.
Hi Andy,
Thanks for the response.. Just tried your instructions and the link you sent but now I get a different error:
g++ -O4 -pipe -Wall -I../include -I. -DZLIB_AVAILABLE__
-D_FILE_OFFSET_BITS=64 -DSTDC_LIMIT_MACROS -o obj/VcfFileReader.o -c
VcfFileReader.cpp -DVERSION="\"1.0.0\""
In file included from VcfRecord.h:29:0,
from VcfFileReader.h:24,
from VcfFileReader.cpp:20:
VcfRecordDiscardRules.h:72:18: error: ‘unordered_set’ in namespace ‘std’
does not name a template type
typedef std::unordered_set~~~~
VcfRecordDiscardRules.h:80:17: error: ‘IDList’ has not been declared
bool setIDs(IDList& idlist, const char* filename);
^~
VcfRecordDiscardRules.h:82:5: error: ‘IDList’ does not name a type
IDList myExcludeIDs;
^~
VcfRecordDiscardRules.h:83:5: error: ‘IDList’ does not name a type
IDList myIncludeIDs;
^~
VcfRecordDiscardRules.h: In constructor
‘VcfRecordDiscardRules::VcfRecordDiscardRules()’:
VcfRecordDiscardRules.h:33:11: error: class ‘VcfRecordDiscardRules’ does
not have any field named ‘myExcludeIDs’
: myExcludeIDs(),
^~~~
VcfRecordDiscardRules.h:34:11: error: class ‘VcfRecordDiscardRules’ does
not have any field named ‘myIncludeIDs’
myIncludeIDs(),
^~~~
../Makefiles/Makefile.common:81: recipe for target 'obj/VcfFileReader.o'
failed
make[4]: [obj/VcfFileReader.o] Error 1
Makefiles/Makefile.base:15: recipe for target 'vcf' failed
make[3]: [vcf] Error 2
../../libStatGen/Makefiles/Makefile.ext:50: recipe for target
'../../libStatGen/libStatGen.a' failed
make[2]: [../../libStatGen/libStatGen.a] Error 2
make[2]: Leaving directory
'/mnt/mfs/cluster/bin/RareMetal2/libRareMetal/mvtnorm'
../libStatGen/Makefiles/Makefile.base:15: recipe for target 'mvtnorm' failed
make[1]: [mvtnorm] Error 2
make[1]: Leaving directory '/mnt/mfs/cluster/bin/RareMetal2/libRareMetal'
libStatGen/Makefiles/Makefile.base:15: recipe for target 'libRareMetal'
failed
make: *** [libRareMetal] Error 2
On Tue, Mar 20, 2018 at 12:41 PM, Andy Boughton notifications@github.com wrote:
Here is the link for the new home of this repo as mentioned earlier: https://github.com/statgen/Raremetal2
If you work from that repo as your starting point, the master branch should incorporate the compile bugfixes mentioned above. If this works for you, we can close this issue.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/traxexx/Raremetal2/issues/2#issuecomment-374669014, or mute the thread https://github.com/notifications/unsubscribe-auth/AcsODgyORKvlm0WAE_FIsgEmnlk3MqJuks5tgTFOgaJpZM4SwvCm .
Hmm. To help narrow this down, could you please provide the following information?
cat /etc/*-release
(officially we support linux versions, tested on Ubuntu 14.04. This version does not support Mac OS)gcc --version
(branch was tested using gcc 4.8.5 and gcc 5.5.0)make clean
in the top-level directory, and also in libStatGen
and libRaremetal
folders?Okay, thanks..
I also tried setting env variables CC and CXX for gcc-4.8 but still did not work..
On Tue, Mar 20, 2018 at 1:28 PM, Andy Boughton notifications@github.com wrote:
Hmm. To help narrow this down, could you please provide the following information?
- What OS distribution + version are you using? cat /etc/*-release (officially we support linux versions, tested on Ubuntu 14.04. This version does not support Mac OS)
- What compiler version are you using? gcc --version (branch was tested using gcc 4.8.5 and gcc 5.5.0)
- Did you run make clean in the top-level directory, and also in libStatGen and libRaremetal folders?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/traxexx/Raremetal2/issues/2#issuecomment-374686000, or mute the thread https://github.com/notifications/unsubscribe-auth/AcsODgJ2cMEjkNzStlImhgPpfhPmbcX4ks5tgTwtgaJpZM4SwvCm .
Looking at your error, the following ticket may be relevant: https://github.com/statgen/verifyBamID/issues/8
It seems that the libStatGen version bundled with Raremetal2 is quite significantly out of date, and you may benefit from adding the following change to your code before compiling: https://github.com/statgen/libStatGen/commit/29805376613c680dee344726ce5c583daf11872f
The cluster is being a bit slow right now, but I will try to compile with GCC 6 later to verify. We'll keep updating the main repo with any changes that you find are required to help it run; long term, libStatGen will be removed from the repo entirely as we rework the build process.
Okay thanks..
Where exactly will I add this change?
On Tue, Mar 20, 2018 at 4:01 PM, Andy Boughton notifications@github.com wrote:
Looking at your error, the following ticket may be relevant: statgen/verifyBamID#8 https://github.com/statgen/verifyBamID/issues/8
It seems that the libStatGen version bundled with Raremetal2 is quite significantly out of date, and you may benefit from adding the following change to your code before compiling: statgen/libStatGen@2980537 https://github.com/statgen/libStatGen/commit/29805376613c680dee344726ce5c583daf11872f
The cluster is being a bit slow right now, but I will try to compile with GCC 6 later to verify. We'll keep updating the main repo with any changes that you find are required to help it run; long term, libStatGen will be removed from the repo entirely as we rework the build process.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/traxexx/Raremetal2/issues/2#issuecomment-374737065, or mute the thread https://github.com/notifications/unsubscribe-auth/AcsODmy15d4nCT9GSqzbCA_j6bS3NYu0ks5tgWAwgaJpZM4SwvCm .
Where exactly will I add this change?
The diff above may be a helpful guide. You'll want to manually add the new lines (shown in green) at the specified line numbers. Relative to the Raremetal2 root, you will be editing the file libStatGen/vcf/VcfRecordDiscardRules.h.
Line 22 before the change will read:
#include <set>
After the change. lines 22-27 will read:
#ifdef __GXX_EXPERIMENTAL_CXX0X__
#include <unordered_set>
#else
#include <set>
#include <set>
#endif
I apologize for asking you to edit the code manually- I'm currently working on wrangling the correct GCC version onto our cluster, so as to avoid pushing code changes before they can be verified.
Okay that fixed that error but now I'm getting this:
PDF.cpp: In member function ‘void PDF::OpenFile(const char*)’: PDF.cpp:41:80: error: narrowing conversion of ‘199’ from ‘int’ to ‘char’ inside { } [-Wnarrowing] char signature[] = {'%', '%', 'G' + 128, 'R' + 128, 'A' + 128, '\n', '\n', 0};
^ PDF.cpp:41:80: error: narrowing conversion of ‘210’ from ‘int’ to ‘char’ inside { } [-Wnarrowing] PDF.cpp:41:80: error: narrowing conversion of ‘193’ from ‘int’ to ‘char’ inside { } [-Wnarrowing] ../../libStatGen/Makefiles/Makefile.common:81: recipe for target 'obj/PDF.o' failed make[2]: [obj/PDF.o] Error 1 make[2]: Leaving directory '/mnt/mfs/cluster/bin/RareMetal2/libRareMetal/pdf' ../libStatGen/Makefiles/Makefile.base:15: recipe for target 'pdf' failed make[1]: [pdf] Error 2 make[1]: Leaving directory '/mnt/mfs/cluster/bin/RareMetal2/libRareMetal' libStatGen/Makefiles/Makefile.base:15: recipe for target 'libRareMetal' failed make: *** [libRareMetal] Error 2
On Tue, Mar 20, 2018 at 4:50 PM, Andy Boughton notifications@github.com wrote:
Where exactly will I add this change?
The diff above may be a helpful guide. You'll want to manually add the new lines (shown in green) at the specified line numbers. Relative to the Raremetal2 root, you will be editing the file libStatGen/vcf/ VcfRecordDiscardRules.h https://github.com/traxexx/Raremetal2/blob/master/libStatGen/vcf/VcfRecordDiscardRules.h .
Line 22 before the change will read:
include
After the change. lines 22-27 will read:
ifdef GXX_EXPERIMENTAL_CXX0X
include
else
include
include
endif
I apologize for asking you to edit the code manually- I'm currently working on wrangling the correct GCC version onto our cluster, so as to avoid pushing code changes before they can be verified.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/traxexx/Raremetal2/issues/2#issuecomment-374751930, or mute the thread https://github.com/notifications/unsubscribe-auth/AcsODqZvHn4oejUcNCKWJrDWTNkzHwMJks5tgWuugaJpZM4SwvCm .
Okay that fixed that error but now I'm getting this:
Thanks for your patience. I am still working on getting gcc6 on our cluster, but here is a branch with the changes we've found so far (including a fix for your pdf issue in the last comment): https://github.com/abought/Raremetal2/tree/feature/gh2-compiling
I'll resume working on this tomorrow and keep you posted with updates.
No worries, I appreciate all your help with this..
Tried the last link you sent and it goes farther but now I get the following error:
/usr/bin/ld: ../../libRareMetal//libRmath.a(gamma.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
../../libStatGen/Makefiles/Makefile.ext:40: recipe for target '../../bin/raremetalTest' failed
make[2]: *** [../../bin/raremetalTest] Error 1
make[2]: Leaving directory '/mnt/mfs/cluster/bin/RareMetal2/raremetal/src'
../libStatGen/Makefiles/Makefile.base:15: recipe for target 'src' failed
make[1]: *** [src] Error 2
make[1]: Leaving directory '/mnt/mfs/cluster/bin/RareMetal2/raremetal'
libStatGen/Makefiles/Makefile.base:15: recipe for target 'raremetal' failed
make: *** [raremetal] Error 2
On Tue, Mar 20, 2018 at 6:24 PM, Andy Boughton notifications@github.com wrote:
Okay that fixed that error but now I'm getting this:
Thanks for your patience. I am still working on getting gcc6 on our cluster, but here is a branch with the changes we've found so far (including a fix for your pdf issue in the last comment): https://github.com/abought/Raremetal2/tree/feature/gh2-compiling
I'll resume working on this tomorrow and keep you posted with updates.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/traxexx/Raremetal2/issues/2#issuecomment-374777847, or mute the thread https://github.com/notifications/unsubscribe-auth/AcsODt4yiWDcKHcgrefEh-DqrlCOJyKkks5tgYGUgaJpZM4SwvCm .
The Rmath static library checked into this repo is compiled with position dependent code. It needs to be deleted. I'm assuming a shared library is trying to link against it.
Steps to fix:
grep -R "libRmath.a" libRareMetal
.All of this should be fixed in a future version.
I've updated the sample branch linked above to incorporate Jonathon's recommended changes.
I wasn't able to get GCC on our cluster, but I was able to reproduce the bug in a clean Debian 9/ GCC 6.3 environment (and verify that the fix builds to completion for me) by using docker to create a development-only environment. (I don't recommend using the docker image for real analysis- it is solely there for development)
Most computing clusters should have R / libRMath installed, but it not, follow Jonathon's instructions above to add this dependency.
Thanks a lot for all your help with this!
The user is currently testing it out...
On Wed, Mar 21, 2018 at 5:20 PM, Andy Boughton notifications@github.com wrote:
I've updated the sample branch linked above to incorporate Jonathon's recommended changes.
I wasn't able to get GCC on our cluster, but I was able to reproduce the bug in a clean Debian 9/ GCC 6.3 environment (and verify that the fix builds to completion for me) by using docker to create a development-only environment. (I don't recommend using the docker image for real analysis- it is solely there for development)
Most computing clusters should have R / libRMath installed, but it not, follow Jonathon's instructions above to add this dependency.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/traxexx/Raremetal2/issues/2#issuecomment-375099741, or mute the thread https://github.com/notifications/unsubscribe-auth/AcsODg111A6bMz7CsbuPxQ9Zx9PBiq0Oks5tgsQ0gaJpZM4SwvCm .
Hi I'm getting the following error compiling:
make[1]: Entering directory '/mnt/mfs/cluster/bin/Raremetal2/libStatGen/samtools' ar -cru ../libStatGen.a obj/bgzf.o obj/knetfile.o ar:
u' modifier ignored since
D' is the default (see `U') ar: ../libStatGen.a: Malformed archive ../Makefiles/Makefile.lib:37: recipe for target '../libStatGen.a' failed make[1]: [../libStatGen.a] Error 1 make[1]: Leaving directory '/mnt/mfs/cluster/bin/Raremetal2/libStatGen/samtools' Makefiles/Makefile.base:15: recipe for target 'samtools' failed make: [samtools] Error 2