Undefined symbol when migrating to Postgres 11
# ld -v /usr/pgsql-11/lib/postgis-2.4.so
GNU ld version 2.27-28.base.el7_5.1
ld: warning: cannot find entry symbol _start; not setting start address
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `repalloc'
/usr/pgsql-11/lib/postgis-2.4.so: undefined reference to `hash_create'


That's not actually a problem. You can't use ld like that, I think you want to use ldd there. It's a shared object, not a executable. Without a _start (or an entry point with -e) you can't call ld and produce an executable


  could not load library "$libdir/postgis-2.4": ERROR: could not load library "/usr/pgsql-11/lib/postgis-2.4.so": /usr/pgsql-11/lib/postgis-2.4.so: undefined symbol: geod_polygon_init


That error is because I believe you're linking against a version of Proj4 that is too old. That's a distro problem if anything.