Bug 499592 - KCodecs framework fails to compile on macos
Summary: KCodecs framework fails to compile on macos
Status: ASSIGNED
Alias: None
Product: frameworks-kcodecs
Classification: Frameworks and Libraries
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Other Other
: NOR normal
Target Milestone: ---
Assignee: kdelibs bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-02-06 12:50 UTC by Daniel Crutti
Modified: 2025-02-06 14:05 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Crutti 2025-02-06 12:50:47 UTC
CONTEXT
I am running an 2015 intel macbook air
Apple has their own compiler called appleclang that is their own version of clang
SUMMARY
I was building the KCodecs framework where I got error about the "register" storage class specifier not being allowed any more
STEPS TO REPRODUCE
1. Have an apple computer on macos sequoia
2. clone Kcodecs gitlab
3. try to build & compile it

OBSERVED RESULT
[ 58%] Building CXX object src/CMakeFiles/KF6Codecs.dir/kcharsets.cpp.o
In file included from /Users/daniel/Programs/kframe/kcodecs/src/kcharsets.cpp:14:
/Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:40:31: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   40 | KCodecsEntities::hash_Entity (register const char *str, register unsigned int len)
      |                               ^~~~~~~~
/Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:40:57: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   40 | KCodecsEntities::hash_Entity (register const char *str, register unsigned int len)
      |                                                         ^~~~~~~~
/Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:71:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   71 |   register unsigned int hval = len;
      |   ^~~~~~~~
/Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:104:34: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  104 | KCodecsEntities::kde_findEntity (register const char *str, register unsigned int len)
      |                                  ^~~~~~~~
/Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:104:60: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  104 | KCodecsEntities::kde_findEntity (register const char *str, register unsigned int len)
      |                                                            ^~~~~~~~
/Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:397:11: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  397 |           register int index = lookup[key];
      |           ^~~~~~~~
/Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:401:15: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  401 |               register const char *s = wordlist_Entity[index].name;
      |               ^~~~~~~~
/Users/daniel/Programs/kframe/kcodecs/src/kentities.gperf:408:10: warning: zero as null pointer constant [-Wzero-as-null-pointer-constant]
  408 |   return 0;
      |          ^
      |          nullptr
1 warning and 7 errors generated.
make[2]: *** [src/CMakeFiles/KF6Codecs.dir/kcharsets.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/KF6Codecs.dir/all] Error 2
make: *** [all] Error 2
EXPECTED RESULT
I expected it to build & compile without errors
SOFTWARE/OS VERSIONS
macOS: Sequoia
ADDITIONAL INFORMATION
N/A
Comment 1 Nicolas Fella 2025-02-06 13:56:39 UTC
See https://bugs.kde.org/show_bug.cgi?id=440091

You need a newer version of gperf
Comment 2 Bug Janitor Service 2025-02-06 14:05:45 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kcodecs/-/merge_requests/66