RE: Building with GCC on Ubuntu 18

From: Vermaas, Joshua (Joshua.Vermaas_at_nrel.gov)
Date: Fri Nov 09 2018 - 12:42:37 CST

Hi Jerome,

Weird. When I build NAMD with 18.04, gnu compilers looks in the system directories by default, so I don't change anything in arch/ other than CUDA locations when I rebuild NAMD with a new release.

-Josh

On 2018-11-09 06:01:10-07:00 Jérôme Hénin wrote:

Thanks Josh!
That said, in my tests the system library locations are not searched, as the default line in the arch file is:
TCLDIR=/Projects/namd2/tcl/tcl8.5.9-linux-x86_64-threaded
Jerome

On Thu, 8 Nov 2018 at 18:51, Vermaas, Joshua <Joshua.Vermaas_at_nrel.gov<mailto:Joshua.Vermaas_at_nrel.gov>> wrote:
The other option is to use dynamically loaded fftw and tcl. On ubuntu, I think the relevant packages are "fftw-dev" or "libfftw3-dev" and either "tcl8.5-dev" or "tcl8.6-dev", which put things where the default Makefile expects to find them.

-Josh

On 2018-11-08 10:29:37-07:00 owner-namd-l_at_ks.uiuc.edu<mailto:owner-namd-l_at_ks.uiuc.edu> wrote:

We’ll look into it. Thanks for reporting that, Jerome.
Julio

On Nov 8, 2018, at 11:18 AM, Jérôme Hénin <jerome.henin_at_ibpc.fr<mailto:jerome.henin_at_ibpc.fr>> wrote:

Dear all,
just an announcement to anyone who'd run into trouble building NAMD with GCC as shipped with recent Ubuntu distros. They enable PIE by default: https://wiki.ubuntu.com/SecurityTeam/PIEfnSyKkfkyVRBIUzlG1GSGGZAZGcznwr8YliSSCjPc%26m%3DfvL2HxXBc0Wm9o6bm9n18giKJj9NVVjzK9Hhr5h9tCg%26s%3DZIZpjLxaNPamXi49qEfd3tYsc1VcVChfhldG_UD1W1s%26e%3D&data=02%7C01%7CJoshua.Vermaas%40nrel.gov%7Cc432f9193ff14a45f2bd08d6464369c2%7Ca0f29d7e28cd4f5484427885aee7c080%7C0%7C0%7C636773652699132132&sdata=UwzoxQ4JOA1qDf7Rrx2L%2BX%2BCUONJ9BvbNq%2FR038X17Y%3D&reserved=0>
which will break if you try to link NAMD with, say, a static FFTW that wasn't built with that option. Then you'll see errors like this:
> relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
This can be fixed by adding the option -no-pie to CXXOPTS in the relevant arch file (eg. Linux-x86_64-g++.arch).

Jerome

This archive was generated by hypermail 2.1.6 : Mon Dec 31 2018 - 23:21:31 CST