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

Multiple symbol definitions for x86-32-windows #5649

Open
alexreinking opened this issue Jan 18, 2021 · 6 comments
Open

Multiple symbol definitions for x86-32-windows #5649

alexreinking opened this issue Jan 18, 2021 · 6 comments

Comments

@alexreinking
Copy link
Member

Compiling a multitarget generator with the following list of targets

x86-32-windows-avx-avx2-f16c-fma-sse41-no_runtime
x86-32-windows-avx-sse41-no_runtime
x86-32-windows-sse41-no_runtime
x86-32-windows-no_runtime

produces several concerning warnings:

Warning: Warning: symbol '__ymm@0000000000000200000000000000000000000000000000008000000000002000' seen multiple times in library.
Warning: Warning: symbol '__ymm@0000000000000000000000000000008000000000000000028000000000000000' seen multiple times in library.
Warning: Warning: symbol '__ymm@0000000000000100000000000000000800000000000000040000000000000000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000002000000000000000000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000000040000000000000000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000000028000000000000000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000000008000000000002000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000001000000000000000008' seen multiple times in library.
Warning: Warning: symbol '__ymm@0000000000000200000000000000000000000000000000008000000000002000' seen multiple times in library.
Warning: Warning: symbol '__ymm@0000000000000000000000000000008000000000000000028000000000000000' seen multiple times in library.
Warning: Warning: symbol '__ymm@0000000000000100000000000000000800000000000000040000000000000000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000002000000000000000000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000000040000000000000000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000000028000000000000000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000000008000000000002000' seen multiple times in library.
Warning: Warning: symbol '__xmm@00000000000001000000000000000008' seen multiple times in library.

Replacing 32-windows with 64-windows in the targets list does not generate these warnings.

@alexreinking
Copy link
Member Author

The warning is generated by our code, here:

user_warning << "Warning: symbol '" << name << "' seen multiple times in library.\n";

@abadams
Copy link
Member

abadams commented Jan 18, 2021

My wild guess: Those symbols are vector constants, where the name of the symbol is the value of the constant (in order to not store the same constant more than once)

@shoaibkamil
Copy link
Contributor

This has been a recurring issue on Windows for us as well; @slomp might have more to say about it. AFAICT, it is exactly what Andrew says: constants are named after the value of the constant, so we end up with multiple symbols of the same name. We should either make the warning better at diagnosing real issues, or get rid of it.

@slomp
Copy link
Contributor

slomp commented Jan 19, 2021

Yeap, this is a minor annoyance, and it's precisely due to what Andrew stated.
I once spent an hour or so trying to get to the bottom of it, but in the end just decided to suppress the warning on our generator tool.

@ashishUthama
Copy link
Contributor

In a larger build system this would unnecessarily alarm users not in the know.

When would this warn about something not ignorable? If thats rare/benign could we remove this warning?

@abadams
Copy link
Member

abadams commented May 26, 2021

Yes, if this is WAI we should disable the warning for sure.

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

5 participants