Skip to content

Compiling in alpine - #20

@manulera

Description

@manulera

I got it to compile in alpine in an aarch64 machine, but not on an x86_64 machine. With some chatGPT help I managed to find the solution. I was getting the below error:

2025-07-01 11:57:59 ./seqan/file/file_page.h:76:22: error: expected '>' before numeric constant
2025-07-01 11:57:59    76 |     template <size_t PAGESIZE>
2025-07-01 11:57:59       |                      ^~~~~~~~
2025-07-01 11:57:59 ./seqan/file/file_page.h:163:55: error: expected '>' before numeric constant
2025-07-01 11:57:59   163 |     template <typename TValue, typename TFile, size_t PAGESIZE>
2025-07-01 11:57:59       |                                                       ^~~~~~~~
2025-07-01 11:57:59 ./seqan/file/file_page.h:184:55: error: expected '>' before numeric constant
2025-07-01 11:57:59   184 |     template <typename TValue, typename TFile, size_t PAGESIZE>
2025-07-01 11:57:59       |                                                       ^~~~~~~~
2025-07-01 11:58:00 ./seqan/file/file_page.h:408:27: error: expected identifier before numeric constant
2025-07-01 11:58:00   408 |         enum            { PAGESIZE = 

... very long

It has to do with the seqan file file/file_page.h, in particular:

#ifdef PAGESIZE
#undef PAGESIZE
#endif
    template <size_t PAGESIZE>

I had to insert that undef block for it to work.

I arrived to this conclusion with chatGPT, which asked me to run echo '#include <sys/param.h>' | cpp -dM | grep PAGESIZE in both machines. The aarch64 machine returned nothing, the x86_64 returned:

#define PAGESIZE 4096
#define PAGE_SIZE PAGESIZE

That got it to compile, but I don't understand much what's going on. Can a fix be added to the library so that I don't have to add this on my side?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions