Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

-lm does not end up on the linker command line with hcc-config #144

Closed
szellmann opened this issue Oct 19, 2016 · 3 comments
Closed

-lm does not end up on the linker command line with hcc-config #144

szellmann opened this issue Oct 19, 2016 · 3 comments

Comments

@szellmann
Copy link
Contributor

No description provided.

@szellmann
Copy link
Contributor Author

szellmann commented Oct 19, 2016

Sorry, accidentally submitted the issue w/o a description. I'm having the problem that with a command line like

hcc hcc-config --ldflags``

-lm does not end up on the command line so that when I have a program that uses math functions in the host program part it won't link. Adding -lm manually solves the issue but this is probably not the intended way to do since libm's implementation will probably not be used on the device, right?

So what is the right way to compile with hcc, I have a program that uses math functions on both host and device side?

@szellmann
Copy link
Contributor Author

szellmann commented Oct 20, 2016

This can btw. be reproduced nicely with the following really tiny program:

// main.cpp

#include <hcc/hc_math.hpp>
//#include <cmath>

int main()
{
    return (int)sqrtf(2.0f);
}

When calling

hcc hcc-config --cxxflags --ldflags main.cpp

the linker complains:

/tmp/tmp.4WoGgeEz7y/hcc-5728f9.host.o: In function main':
/tmp/hcc-ece2c5.s.bc:(.text+0x18): undefined reference to sqrtf'

while

hcc hcc-config --cxxflags --ldflags hcc.cpp -lm

compiles and links just fine.

BTW: Ubuntu 14.04

$ lsb_release

LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch

$ uname -a

Linux XXXXXX 4.4.0-kfd-compute-rocm-rel-1.2-31 #1 SMP Fri Jul 22 06:06:24 CDT 2016 x86_64 x86_64 x86_64 GNU/Linux

hcc --version

HCC clang version 3.5.0 (based on HCC 0.10.16313-d90738a-10704f4 LLVM 3.5.0svn) Target: x86_64-unknown-linux-gnu Thread model: posix

@whchung
Copy link
Collaborator

whchung commented Oct 20, 2016

@szellmann normally it's anticipated that user would link with -lm if math functions are used in host codes. but as you mentioned, it could also be easier for users to rely on hcc-config to provide all the necessary linker flags. I'm wondering would you mind come up with a pull request? I'd love to accept it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants