On my previous post, I was asked if there was any specific reason to get the 20 year old program compiled on the latest compiler? It should be expected that the older executable would continue to run even on new versions of the OS.
Here is the answer.
There are many reasons for porting:
1) In the industry, there is a standard set of the development tools (eg OS, compilers, etc) used in any organization, and these standards are revised from time to time. By ensuring that we have a well-defined standard, we can establish a consistency within the development teams, as well as with customers, to avoid build/run time issues. When the organization moves to the new standard, all [or at least, a defined set] of the products comply with it. One can say that this is an organizational policy matter.
In our case, we moved from gcc 3.2.3 to gcc4.1.1 company-wide, for Linux platforms.
2) In large product based environments, each product is not an independent entity in itself, but has several dependencies. While a particular product may not see many changes, the dependencies may change.
In our case, dependencies include few libraries, which are changing actively. To remain compatible, we have to port this old product on to new platforms/compilers.
3) Although this specific code is quite old, and newer products have since been launched, there still are some loyal customers, who need bug fixes in it. So, to deliver these fixes, the product has to be compiled anew. For new compilation, one must use the new standards of compilers.
Here is the answer.
There are many reasons for porting:
1) In the industry, there is a standard set of the development tools (eg OS, compilers, etc) used in any organization, and these standards are revised from time to time. By ensuring that we have a well-defined standard, we can establish a consistency within the development teams, as well as with customers, to avoid build/run time issues. When the organization moves to the new standard, all [or at least, a defined set] of the products comply with it. One can say that this is an organizational policy matter.
In our case, we moved from gcc 3.2.3 to gcc4.1.1 company-wide, for Linux platforms.
2) In large product based environments, each product is not an independent entity in itself, but has several dependencies. While a particular product may not see many changes, the dependencies may change.
In our case, dependencies include few libraries, which are changing actively. To remain compatible, we have to port this old product on to new platforms/compilers.
3) Although this specific code is quite old, and newer products have since been launched, there still are some loyal customers, who need bug fixes in it. So, to deliver these fixes, the product has to be compiled anew. For new compilation, one must use the new standards of compilers.