LLNL / UnifyFS

UnifyFS: A file system for burst buffers
Other
99 stars 31 forks source link

define stat wrappers depending on whether symbol is found #779

Closed adammoody closed 1 year ago

adammoody commented 1 year ago

Description

Motivation and Context

How Has This Been Tested?

Types of changes

Checklist:

adammoody commented 1 year ago

@wangvsa , I'm hitting some link time errors when building on tioga due to missing symbols stat64 and fstat64. Have you tried to build there?

I'm building everything direct (no spack), which might be part of the problem. I did find that I needed to set some variables to pick up the Cray compilers instead of the system gcc: ./configure CC=cc CXX=CC .... I made some tweaks to bootstrap.sh, as well. I can pass any of that along if you're doing the same.

What's strange is that configure claims to find these functions, but then I hit the link errors when building some of the examples. I haven't tracked it down just yet. I did find there are some definitions for these in /usr/lib64/libc_nonshared.a, which maybe is where configure found them during its check.

Also, I made a few changes to some of the wrapper code. Would you please review those changes (second commit)?

wangvsa commented 1 year ago

I just tried on Tioga and got the same link issue (I also build everything directly). Adding the conditional check doesn't seem to solve the issue, since configure was able to find stat64/fstat64. Are there any other changes you made?

adammoody commented 1 year ago

No, I haven't figured it out yet, but it's useful to know that it's not just me. I had some other tests to run, so I just commented out those wrappers for now as a work around.

I'm guessing it has something to do with the Cray compilers. Are you building directly or via spack?

wangvsa commented 1 year ago

I'm building it directly (without spack). I also set CC=cc CXX=CC so that bootstrap and configure pick the cray compiler.

MichaelBrim commented 1 year ago

Not sure if it's relevant or helpful, but when I'm building from source on Crusher/Frontier I have recently needed to set CC=craycc and CXX=crayCC