We have a C program which uses a .h header file to describe the custom-made data structure we use. The data structure must follow the design in the functional specification. There is some diagram to describe the member of the data structures and it would be described a ANS.1 abstract syntax, and then the asn file would be compiled to a .h header file.
In order to enhance our system, a request to change the functional specification was approved and a new specification was made. ( We jump from 2.10 to 2.12 as we had skipped the upgrade of 2.11 ) Comparing 2.10 to 2.12, a lot of new stuff were added and some old stuff were removed. We need to use a new .asn to compile a new .h header file in order to follow the specification.
The problem is that, something useful were removed. For example some member of a data structure were removed and we have been using the member for logic in the program. The program can't even compiled with the new header file. The program have been up and running and we would like to avoid any major down time due to this upgrade.
P.S. The specification is not only for our company, it is a standard for the file structure of the files sending between companeis within the whole industry. Say, if one declare to use 2.12 spec, and other party will treat the file with 2.12 standard and discard any files which doesn't follow the standard.
P.S. Of course there is no option. The decision is made. However I am facing a problem that the c program was written by some other people and have complex logic. The program would be hugely damaged by the change of the header file. And I may have no idea some to restore peace and functionality to it. Any suggestion of how to check with each difference is appreciated.