diff --git a/CHANGELOG.md b/CHANGELOG.md
index baae314..3c72897 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,11 @@
 
 ### Removed
 
+- Previously deprecated symbols:
+
+  - `crc32()`: Users must switch to `pldm_edac_crc32()`
+  - `crc8()`: Users must switch to `pldm_edac_crc8()`
+
 ### Fixed
 
 ### Security
diff --git a/abi/x86_64/gcc.dump b/abi/x86_64/gcc.dump
index 58f5453..33e0efc 100644
--- a/abi/x86_64/gcc.dump
+++ b/abi/x86_64/gcc.dump
@@ -260,7 +260,7 @@
     },
     '5932' => {
       'Header' => 'utils.h',
-      'Line' => '110',
+      'Line' => '108',
       'Param' => {
         '0' => {
           'name' => 'transfer_flag',
@@ -272,7 +272,7 @@
     },
     '5992' => {
       'Header' => 'utils.h',
-      'Line' => '101',
+      'Line' => '99',
       'Param' => {
         '0' => {
           'name' => 'seconds',
@@ -304,7 +304,7 @@
     },
     '6236' => {
       'Header' => 'utils.h',
-      'Line' => '89',
+      'Line' => '87',
       'Param' => {
         '0' => {
           'name' => 'dec',
@@ -316,7 +316,7 @@
     },
     '6365' => {
       'Header' => 'utils.h',
-      'Line' => '83',
+      'Line' => '81',
       'Param' => {
         '0' => {
           'name' => 'bcd',
@@ -328,7 +328,7 @@
     },
     '6468' => {
       'Header' => 'utils.h',
-      'Line' => '77',
+      'Line' => '75',
       'Param' => {
         '0' => {
           'name' => 'dec',
@@ -340,7 +340,7 @@
     },
     '6584' => {
       'Header' => 'utils.h',
-      'Line' => '71',
+      'Line' => '69',
       'Param' => {
         '0' => {
           'name' => 'bcd',
@@ -352,7 +352,7 @@
     },
     '6687' => {
       'Header' => 'utils.h',
-      'Line' => '65',
+      'Line' => '63',
       'Param' => {
         '0' => {
           'name' => 'dec',
@@ -364,7 +364,7 @@
     },
     '6740' => {
       'Header' => 'utils.h',
-      'Line' => '59',
+      'Line' => '57',
       'Param' => {
         '0' => {
           'name' => 'bcd',
@@ -376,7 +376,7 @@
     },
     '6793' => {
       'Header' => 'utils.h',
-      'Line' => '53',
+      'Line' => '51',
       'Param' => {
         '0' => {
           'name' => 'version',
@@ -399,7 +399,6 @@
       'ShortName' => 'ver2str'
     },
     '6922' => {
-      'Alias' => 'pldm_edac_crc8',
       'Header' => 'utils.h',
       'Line' => '31',
       'Param' => {
@@ -416,12 +415,11 @@
         '1' => 'rdx'
       },
       'Return' => '135',
-      'ShortName' => 'crc8'
+      'ShortName' => 'pldm_edac_crc8'
     },
     '7036' => {
-      'Alias' => 'pldm_edac_crc32',
       'Header' => 'utils.h',
-      'Line' => '40',
+      'Line' => '39',
       'Param' => {
         '0' => {
           'name' => 'data',
@@ -436,7 +434,7 @@
         '1' => 'rcx'
       },
       'Return' => '147',
-      'ShortName' => 'crc32'
+      'ShortName' => 'pldm_edac_crc32'
     },
     '11984' => {
       'Header' => 'base.h',
@@ -9394,8 +9392,6 @@
       'bcd2dec16' => 1,
       'bcd2dec32' => 1,
       'bcd2dec8' => 1,
-      'crc32' => 1,
-      'crc8' => 1,
       'dec2bcd16' => 1,
       'dec2bcd32' => 1,
       'dec2bcd8' => 1,
diff --git a/include/libpldm/utils.h b/include/libpldm/utils.h
index 365fd67..1c9fc72 100644
--- a/include/libpldm/utils.h
+++ b/include/libpldm/utils.h
@@ -29,7 +29,6 @@
  *  @return The checksum
  */
 uint8_t pldm_edac_crc8(const void *data, size_t size);
-uint8_t crc8(const void *data, size_t size);
 
 /** @brief Compute crc32 (same as the one used by IEEE802.3)
  *
@@ -38,7 +37,6 @@
  *  @return The checksum
  */
 uint32_t pldm_edac_crc32(const void *data, size_t size);
-uint32_t crc32(const void *data, size_t size);
 
 /** @brief Convert ver32_t to string
  *  @param[in] version - Pointer to ver32_t
diff --git a/meson.build b/meson.build
index 1795639..4055d84 100644
--- a/meson.build
+++ b/meson.build
@@ -46,10 +46,7 @@
     entrypoint += ' __attribute__((tainted_args))'
 endif
 
-libpldm_deprecated_aliases = [
-    ['crc32', 'pldm_edac_crc32'],
-    ['crc8', 'pldm_edac_crc8'],
-]
+libpldm_deprecated_aliases = []
 if get_option('abi').contains('deprecated')
     conf.set('LIBPLDM_ABI_DEPRECATED', entrypoint)
     conf.set(
