PG-1246: Do not duplicate makefile object targets #374
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue: currently pg_tde with make wants to build the same object files twice. Once during the pg_waldump build with Makefile.tools, and once duriong the pg_tde build with Makefile.
As the make rulesystem sees that the object files are already built after the first time, it doesn't rebuild them, resulting in all kinds of issues, either incorrect pg_tde.so or a build failure.
Fix: rename the "frontend" built objects to .frontend instead of .o, and duplicate the build rule for them. This way the object files have a different name, and both will be built.
Note: the
-DFRONTEND
flag is not present in Makefile.tools, as it is currently added by pg_waldump. The postgres side still requires more refactoring so it feels like less of a hack, and during that, this file can be improved further.