Skip to content

Commit

Permalink
[libomptarget][amdgcn] Drop use of inttypes.h, moving closer to frees…
Browse files Browse the repository at this point in the history
…tanding

[libomptarget][amdgcn] Drop use of inttypes.h, moving closer to freestanding

The glibc headers are a periodic source of problems compiling the devicertl.
This patch resolves the following error run into while building llvm on a slightly
different linux system.
```
In file included from .../lib/clang/13.0.0/include/inttypes.h:21:
In file included from /usr/include/inttypes.h:25:
/usr/include/features.h:461:12: fatal error: 'sys/cdefs.h' file not found
#  include <sys/cdefs.h>
           ^~~~~~~~~~~~~
```
As a second patch, removing assert.h from shuffle will let amdgcn build as
-ffreestanding, at which point only the headers that clang itself provides are
used and interactions with the host glibc are eliminated. Doing the same for
nvptx is complicated by printf handling but also seems worthwhile.

Reviewed By: tianshilei1992

Differential Revision: https://reviews.llvm.org/D98565
  • Loading branch information
JonChesterfield committed Mar 15, 2021
1 parent d07e5c2 commit 1568429
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
5 changes: 4 additions & 1 deletion openmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.h
Expand Up @@ -18,10 +18,13 @@

#include "amdgcn_interface.h"

#include <inttypes.h>
#include <stddef.h>
#include <stdint.h>

// subset of inttypes.h
#define PRId64 "ld"
#define PRIu64 "lu"

#define DEVICE
#define INLINE inline DEVICE
#define NOINLINE __attribute__((noinline)) DEVICE
Expand Down
Expand Up @@ -16,7 +16,7 @@
#define LIBOMPTARGET_DEVICERTL_SHUFFLE_H

#include <assert.h>
#include <inttypes.h>
#include <stdint.h>

#pragma omp declare target

Expand Down

0 comments on commit 1568429

Please sign in to comment.