Remove all of the NEED_SHORT_EXTERNAL_NAMES stuff.  There is scant information available as to which linkers ever had a 15-character global symbol name limit.  AFAICT, it might have been a VMS and/or a.out BSD thing, but none of those platforms have ever been supported by libjpeg-turbo (nor are such systems supported by other open source libraries of this nature.)


git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1307 632fc199-4ca6-4c93-a231-07263d6284db
diff --git a/cdjpeg.h b/cdjpeg.h
index 0a8f197..6eec62f 100644
--- a/cdjpeg.h
+++ b/cdjpeg.h
@@ -89,32 +89,6 @@
 typedef struct cdjpeg_progress_mgr * cd_progress_ptr;
 
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jinit_read_bmp          jIRdBMP
-#define jinit_write_bmp         jIWrBMP
-#define jinit_read_gif          jIRdGIF
-#define jinit_write_gif         jIWrGIF
-#define jinit_read_ppm          jIRdPPM
-#define jinit_write_ppm         jIWrPPM
-#define jinit_read_rle          jIRdRLE
-#define jinit_write_rle         jIWrRLE
-#define jinit_read_targa        jIRdTarga
-#define jinit_write_targa       jIWrTarga
-#define read_quant_tables       RdQTables
-#define read_scan_script        RdScnScript
-#define set_quality_ratings     SetQRates
-#define set_quant_slots         SetQSlots
-#define set_sample_factors      SetSFacts
-#define read_color_map          RdCMap
-#define enable_signal_catcher   EnSigCatcher
-#define start_progress_monitor  StProgMon
-#define end_progress_monitor    EnProgMon
-#define read_stdin              RdStdin
-#define write_stdout            WrStdout
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
 /* Module selection routines for I/O modules. */
 
 EXTERN(cjpeg_source_ptr) jinit_read_bmp JPP((j_compress_ptr cinfo));
diff --git a/coderules.txt b/coderules.txt
index ea8fcc0..6ee7f5e 100644
--- a/coderules.txt
+++ b/coderules.txt
@@ -94,9 +94,7 @@
 wherever possible.  (Note that our method-based calling conventions help this
 a lot: in many modules only the initialization function will ever need to be
 called directly, so only that function need be externally visible.)  All
-global function names should begin with "jpeg_", and should have an
-abbreviated name (unique in the first six characters) substituted by macro
-when NEED_SHORT_EXTERNAL_NAMES is set.
+global function names should begin with "jpeg_".
 
 3. Don't use global variables; anything that must be used in another module
 should be in the common data structures.
diff --git a/configure.ac b/configure.ac
index 8c3093c..12724f7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -136,16 +136,6 @@
   [AC_MSG_RESULT(yes)],
   [AC_MSG_RESULT(Assuming that right shift is signed on target machine.)])
 
-# test whether global names are unique to at least 15 chars
-AC_MSG_CHECKING([for short external names])
-AC_TRY_LINK(
-  [int possibly_duplicate_function () { return 0; }
-   int possibly_dupli_function () { return 1; }], [ ],
-  [AC_MSG_RESULT(ok)],
-  [AC_MSG_RESULT(short)
-   AC_DEFINE([NEED_SHORT_EXTERNAL_NAMES], 1,
-     [Define if linker requires that the first 15 characters of global names be unique.])])
-
 # Checks for library functions.
 AC_CHECK_FUNCS([memset memcpy], [],
   [AC_DEFINE([NEED_BSD_STRINGS], 1,
diff --git a/jchuff.h b/jchuff.h
index a1a5280..c419923 100644
--- a/jchuff.h
+++ b/jchuff.h
@@ -30,13 +30,6 @@
   /* If no code has been allocated for a symbol S, ehufsi[S] contains 0 */
 } c_derived_tbl;
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jpeg_make_c_derived_tbl jMkCDerived
-#define jpeg_gen_optimal_table  jGenOptTbl
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
 /* Expand a Huffman table definition into the derived format */
 EXTERN(void) jpeg_make_c_derived_tbl
         JPP((j_compress_ptr cinfo, boolean isDC, int tblno,
diff --git a/jconfig.h.in b/jconfig.h.in
index 78023c1..73a523d 100644
--- a/jconfig.h.in
+++ b/jconfig.h.in
@@ -40,10 +40,6 @@
    memset/memcpy in <string.h>. */
 #undef NEED_BSD_STRINGS
 
-/* Define if linker requires that the first 15 characters of global names be
-   unique. */
-#undef NEED_SHORT_EXTERNAL_NAMES
-
 /* Define if you need to include <sys/types.h> to get size_t. */
 #undef NEED_SYS_TYPES_H
 
diff --git a/jconfig.txt b/jconfig.txt
index ba829ad..631c7a0 100644
--- a/jconfig.txt
+++ b/jconfig.txt
@@ -77,11 +77,6 @@
  */
 #undef NEED_FAR_POINTERS
 
-/* Define this if your linker needs global names to be unique in less
- * than the first 15 characters.
- */
-#undef NEED_SHORT_EXTERNAL_NAMES
-
 /* Although a real ANSI C compiler can deal perfectly well with pointers to
  * unspecified structures (see "incomplete types" in the spec), a few pre-ANSI
  * and pseudo-ANSI compilers get confused.  To keep one of these bozos happy,
diff --git a/jdct.h b/jdct.h
index 310f2ca..b8d6e9c 100644
--- a/jdct.h
+++ b/jdct.h
@@ -86,32 +86,6 @@
 #define RANGE_MASK  (MAXJSAMPLE * 4 + 3) /* 2 bits wider than legal samples */
 
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jpeg_fdct_islow         jFDislow
-#define jpeg_fdct_ifast         jFDifast
-#define jpeg_fdct_float         jFDfloat
-#define jpeg_idct_islow         jRDislow
-#define jpeg_idct_ifast         jRDifast
-#define jpeg_idct_float         jRDfloat
-#define jpeg_idct_7x7           jRD7x7
-#define jpeg_idct_6x6           jRD6x6
-#define jpeg_idct_5x5           jRD5x5
-#define jpeg_idct_4x4           jRD4x4
-#define jpeg_idct_3x3           jRD3x3
-#define jpeg_idct_2x2           jRD2x2
-#define jpeg_idct_1x1           jRD1x1
-#define jpeg_idct_9x9           jRD9x9
-#define jpeg_idct_10x10         jRD10x10
-#define jpeg_idct_11x11         jRD11x11
-#define jpeg_idct_12x12         jRD12x12
-#define jpeg_idct_13x13         jRD13x13
-#define jpeg_idct_14x14         jRD14x14
-#define jpeg_idct_15x15         jRD15x15
-#define jpeg_idct_16x16         jRD16x16
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
 /* Extern declarations for the forward and inverse DCT routines. */
 
 EXTERN(void) jpeg_fdct_islow JPP((DCTELEM * data));
diff --git a/jdhuff.h b/jdhuff.h
index 8d2c654..18fdcb8 100644
--- a/jdhuff.h
+++ b/jdhuff.h
@@ -12,14 +12,6 @@
  * progressive decoder (jdphuff.c).  No other modules need to see these.
  */
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jpeg_make_d_derived_tbl jMkDDerived
-#define jpeg_fill_bit_buffer    jFilBitBuf
-#define jpeg_huff_decode        jHufDecode
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
 
 /* Derived data constructed for each Huffman table */
 
diff --git a/jerror.c b/jerror.c
index cd4c2a3..ca4f3a5 100644
--- a/jerror.c
+++ b/jerror.c
@@ -41,10 +41,6 @@
  * want to refer to it directly.
  */
 
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jpeg_std_message_table  jMsgTable
-#endif
-
 #define JMESSAGE(code,string)   string ,
 
 const char * const jpeg_std_message_table[] = {
diff --git a/jmemsys.h b/jmemsys.h
index 5b6b7c4..2a8c469 100644
--- a/jmemsys.h
+++ b/jmemsys.h
@@ -19,20 +19,6 @@
  */
 
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jpeg_get_small          jGetSmall
-#define jpeg_free_small         jFreeSmall
-#define jpeg_get_large          jGetLarge
-#define jpeg_free_large         jFreeLarge
-#define jpeg_mem_available      jMemAvail
-#define jpeg_open_backing_store jOpenBackStore
-#define jpeg_mem_init           jMemInit
-#define jpeg_mem_term           jMemTerm
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
-
 /*
  * These two functions are used to allocate and release small chunks of
  * memory.  (Typically the total amount requested through jpeg_get_small is
diff --git a/jpegint.h b/jpegint.h
index 44a330d..cfb5956 100644
--- a/jpegint.h
+++ b/jpegint.h
@@ -292,48 +292,6 @@
 #endif
 
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jinit_compress_master   jICompress
-#define jinit_c_master_control  jICMaster
-#define jinit_c_main_controller jICMainC
-#define jinit_c_prep_controller jICPrepC
-#define jinit_c_coef_controller jICCoefC
-#define jinit_color_converter   jICColor
-#define jinit_downsampler       jIDownsampler
-#define jinit_forward_dct       jIFDCT
-#define jinit_huff_encoder      jIHEncoder
-#define jinit_phuff_encoder     jIPHEncoder
-#define jinit_arith_encoder     jIAEncoder
-#define jinit_marker_writer     jIMWriter
-#define jinit_master_decompress jIDMaster
-#define jinit_d_main_controller jIDMainC
-#define jinit_d_coef_controller jIDCoefC
-#define jinit_d_post_controller jIDPostC
-#define jinit_input_controller  jIInCtlr
-#define jinit_marker_reader     jIMReader
-#define jinit_huff_decoder      jIHDecoder
-#define jinit_phuff_decoder     jIPHDecoder
-#define jinit_arith_decoder     jIADecoder
-#define jinit_inverse_dct       jIIDCT
-#define jinit_upsampler         jIUpsampler
-#define jinit_color_deconverter jIDColor
-#define jinit_1pass_quantizer   jI1Quant
-#define jinit_2pass_quantizer   jI2Quant
-#define jinit_merged_upsampler  jIMUpsampler
-#define jinit_memory_mgr        jIMemMgr
-#define jdiv_round_up           jDivRound
-#define jround_up               jRound
-#define jcopy_sample_rows       jCopySamples
-#define jcopy_block_row         jCopyBlocks
-#define jzero_far               jZeroFar
-#define jpeg_zigzag_order       jZIGTable
-#define jpeg_natural_order      jZAGTable
-#define jpeg_aritab             jAriTab
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
-
 /* Compression module initialization routines */
 EXTERN(void) jinit_compress_master JPP((j_compress_ptr cinfo));
 EXTERN(void) jinit_c_master_control JPP((j_compress_ptr cinfo,
diff --git a/jpeglib.h b/jpeglib.h
index ee757b9..612f74a 100644
--- a/jpeglib.h
+++ b/jpeglib.h
@@ -898,78 +898,6 @@
 #endif
 
 
-/* Short forms of external names for systems with brain-damaged linkers.
- * We shorten external names to be unique in the first six letters, which
- * is good enough for all known systems.
- * (If your compiler itself needs names to be unique in less than 15
- * characters, you are out of luck.  Get a better compiler.)
- */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jpeg_std_error          jStdError
-#define jpeg_CreateCompress     jCreaCompress
-#define jpeg_CreateDecompress   jCreaDecompress
-#define jpeg_destroy_compress   jDestCompress
-#define jpeg_destroy_decompress jDestDecompress
-#define jpeg_stdio_dest         jStdDest
-#define jpeg_stdio_src          jStdSrc
-#if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
-#define jpeg_mem_dest           jMemDest
-#define jpeg_mem_src            jMemSrc
-#endif
-#define jpeg_set_defaults       jSetDefaults
-#define jpeg_set_colorspace     jSetColorspace
-#define jpeg_default_colorspace jDefColorspace
-#define jpeg_set_quality        jSetQuality
-#define jpeg_set_linear_quality jSetLQuality
-#if JPEG_LIB_VERSION >= 70
-#define jpeg_default_qtables    jDefQTables
-#endif
-#define jpeg_add_quant_table    jAddQuantTable
-#define jpeg_quality_scaling    jQualityScaling
-#define jpeg_simple_progression jSimProgress
-#define jpeg_suppress_tables    jSuppressTables
-#define jpeg_alloc_quant_table  jAlcQTable
-#define jpeg_alloc_huff_table   jAlcHTable
-#define jpeg_start_compress     jStrtCompress
-#define jpeg_write_scanlines    jWrtScanlines
-#define jpeg_finish_compress    jFinCompress
-#if JPEG_LIB_VERSION >= 70
-#define jpeg_calc_jpeg_dimensions       jCjpegDimensions
-#endif
-#define jpeg_write_raw_data     jWrtRawData
-#define jpeg_write_marker       jWrtMarker
-#define jpeg_write_m_header     jWrtMHeader
-#define jpeg_write_m_byte       jWrtMByte
-#define jpeg_write_tables       jWrtTables
-#define jpeg_read_header        jReadHeader
-#define jpeg_start_decompress   jStrtDecompress
-#define jpeg_read_scanlines     jReadScanlines
-#define jpeg_finish_decompress  jFinDecompress
-#define jpeg_read_raw_data      jReadRawData
-#define jpeg_has_multiple_scans jHasMultScn
-#define jpeg_start_output       jStrtOutput
-#define jpeg_finish_output      jFinOutput
-#define jpeg_input_complete     jInComplete
-#define jpeg_new_colormap       jNewCMap
-#define jpeg_consume_input      jConsumeInput
-#if JPEG_LIB_VERSION >= 80
-#define jpeg_core_output_dimensions     jCoreDimensions
-#endif
-#define jpeg_calc_output_dimensions     jCalcDimensions
-#define jpeg_save_markers       jSaveMarkers
-#define jpeg_set_marker_processor       jSetMarker
-#define jpeg_read_coefficients  jReadCoefs
-#define jpeg_write_coefficients jWrtCoefs
-#define jpeg_copy_critical_parameters   jCopyCrit
-#define jpeg_abort_compress     jAbrtCompress
-#define jpeg_abort_decompress   jAbrtDecompress
-#define jpeg_abort              jAbort
-#define jpeg_destroy            jDestroy
-#define jpeg_resync_to_restart  jResyncRestart
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
-
 /* Default error-management setup */
 EXTERN(struct jpeg_error_mgr *) jpeg_std_error
         JPP((struct jpeg_error_mgr * err));
diff --git a/jsimd.h b/jsimd.h
index 2b683e8..80bc20b 100644
--- a/jsimd.h
+++ b/jsimd.h
@@ -10,33 +10,6 @@
  *
  */
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jsimd_can_rgb_ycc                 jSCanRgbYcc
-#define jsimd_can_rgb_gray                jSCanRgbGry
-#define jsimd_can_ycc_rgb                 jSCanYccRgb
-#define jsimd_rgb_ycc_convert             jSRgbYccConv
-#define jsimd_rgb_gray_convert            jSRgbGryConv
-#define jsimd_ycc_rgb_convert             jSYccRgbConv
-#define jsimd_can_h2v2_downsample         jSCanH2V2Down
-#define jsimd_can_h2v1_downsample         jSCanH2V1Down
-#define jsimd_h2v2_downsample             jSH2V2Down
-#define jsimd_h2v1_downsample             jSH2V1Down
-#define jsimd_can_h2v2_upsample           jSCanH2V2Up
-#define jsimd_can_h2v1_upsample           jSCanH2V1Up
-#define jsimd_h2v2_upsample               jSH2V2Up
-#define jsimd_h2v1_upsample               jSH2V1Up
-#define jsimd_can_h2v2_fancy_upsample     jSCanH2V2FUp
-#define jsimd_can_h2v1_fancy_upsample     jSCanH2V1FUp
-#define jsimd_h2v2_fancy_upsample         jSH2V2FUp
-#define jsimd_h2v1_fancy_upsample         jSH2V1FUp
-#define jsimd_can_h2v2_merged_upsample    jSCanH2V2MUp
-#define jsimd_can_h2v1_merged_upsample    jSCanH2V1MUp
-#define jsimd_h2v2_merged_upsample        jSH2V2MUp
-#define jsimd_h2v1_merged_upsample        jSH2V1MUp
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
 EXTERN(int) jsimd_can_rgb_ycc JPP((void));
 EXTERN(int) jsimd_can_rgb_gray JPP((void));
 EXTERN(int) jsimd_can_ycc_rgb JPP((void));
diff --git a/jsimddct.h b/jsimddct.h
index d962b9b..928d6d3 100644
--- a/jsimddct.h
+++ b/jsimddct.h
@@ -9,35 +9,6 @@
  *
  */
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jsimd_can_convsamp                jSCanConv
-#define jsimd_can_convsamp_float          jSCanConvF
-#define jsimd_convsamp                    jSConv
-#define jsimd_convsamp_float              jSConvF
-#define jsimd_can_fdct_islow              jSCanFDCTIS
-#define jsimd_can_fdct_ifast              jSCanFDCTIF
-#define jsimd_can_fdct_float              jSCanFDCTFl
-#define jsimd_fdct_islow                  jSFDCTIS
-#define jsimd_fdct_ifast                  jSFDCTIF
-#define jsimd_fdct_float                  jSFDCTFl
-#define jsimd_can_quantize                jSCanQuant
-#define jsimd_can_quantize_float          jSCanQuantF
-#define jsimd_quantize                    jSQuant
-#define jsimd_quantize_float              jSQuantF
-#define jsimd_can_idct_2x2                jSCanIDCT22
-#define jsimd_can_idct_4x4                jSCanIDCT44
-#define jsimd_idct_2x2                    jSIDCT22
-#define jsimd_idct_4x4                    jSIDCT44
-#define jsimd_can_idct_islow              jSCanIDCTIS
-#define jsimd_can_idct_ifast              jSCanIDCTIF
-#define jsimd_can_idct_float              jSCanIDCTFl
-#define jsimd_idct_islow                  jSIDCTIS
-#define jsimd_idct_ifast                  jSIDCTIF
-#define jsimd_idct_float                  jSIDCTFl
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
 EXTERN(int) jsimd_can_convsamp JPP((void));
 EXTERN(int) jsimd_can_convsamp_float JPP((void));
 
diff --git a/libjpeg.txt b/libjpeg.txt
index 5f203d6..73c5e1d 100644
--- a/libjpeg.txt
+++ b/libjpeg.txt
@@ -2949,11 +2949,7 @@
 and GIF file formats; you must disable the other file formats to compile a
 12-bit cjpeg or djpeg.  (install.txt has more information about that.)
 At present, a 12-bit library can handle *only* 12-bit images, not both
-precisions.  (If you need to include both 8- and 12-bit libraries in a single
-application, you could probably do it by defining NEED_SHORT_EXTERNAL_NAMES
-for just one of the copies.  You'd have to access the 8-bit and 12-bit copies
-from separate application source files.  This is untested ... if you try it,
-we'd like to hear whether it works!)
+precisions.
 
 Note that a 12-bit library always compresses in Huffman optimization mode,
 in order to generate valid Huffman tables.  This is necessary because our
@@ -3035,10 +3031,6 @@
 manager "back end" module, so you can use a different memory allocator by
 replacing that one file.
 
-The code generally assumes that C names must be unique in the first 15
-characters.  However, global function names can be made unique in the
-first 6 characters by defining NEED_SHORT_EXTERNAL_NAMES.
-
 More info about porting the code may be gleaned by reading jconfig.txt,
 jmorecfg.h, and jinclude.h.
 
diff --git a/simd/jsimd.h b/simd/jsimd.h
index 504429c..572da81 100644
--- a/simd/jsimd.h
+++ b/simd/jsimd.h
@@ -21,134 +21,6 @@
 #define JSIMD_ARM_NEON   0x10
 #define JSIMD_MIPS_DSPR2 0x20
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jpeg_simd_cpu_support                 jSiCpuSupport
-#define jsimd_rgb_ycc_convert_mmx             jSRGBYCCM
-#define jsimd_extrgb_ycc_convert_mmx          jSEXTRGBYCCM
-#define jsimd_extrgbx_ycc_convert_mmx         jSEXTRGBXYCCM
-#define jsimd_extbgr_ycc_convert_mmx          jSEXTBGRYCCM
-#define jsimd_extbgrx_ycc_convert_mmx         jSEXTBGRXYCCM
-#define jsimd_extxbgr_ycc_convert_mmx         jSEXTXBGRYCCM
-#define jsimd_extxrgb_ycc_convert_mmx         jSEXTXRGBYCCM
-#define jsimd_rgb_gray_convert_mmx            jSRGBGRYM
-#define jsimd_extrgb_gray_convert_mmx         jSEXTRGBGRYM
-#define jsimd_extrgbx_gray_convert_mmx        jSEXTRGBXGRYM
-#define jsimd_extbgr_gray_convert_mmx         jSEXTBGRGRYM
-#define jsimd_extbgrx_gray_convert_mmx        jSEXTBGRXGRYM
-#define jsimd_extxbgr_gray_convert_mmx        jSEXTXBGRGRYM
-#define jsimd_extxrgb_gray_convert_mmx        jSEXTXRGBGRYM
-#define jsimd_ycc_rgb_convert_mmx             jSYCCRGBM
-#define jsimd_ycc_extrgb_convert_mmx          jSYCCEXTRGBM
-#define jsimd_ycc_extrgbx_convert_mmx         jSYCCEXTRGBXM
-#define jsimd_ycc_extbgr_convert_mmx          jSYCCEXTBGRM
-#define jsimd_ycc_extbgrx_convert_mmx         jSYCCEXTBGRXM
-#define jsimd_ycc_extxbgr_convert_mmx         jSYCCEXTXBGRM
-#define jsimd_ycc_extxrgb_convert_mmx         jSYCCEXTXRGBM
-#define jconst_rgb_ycc_convert_sse2           jSCRGBYCCS2
-#define jsimd_rgb_ycc_convert_sse2            jSRGBYCCS2
-#define jsimd_extrgb_ycc_convert_sse2         jSEXTRGBYCCS2
-#define jsimd_extrgbx_ycc_convert_sse2        jSEXTRGBXYCCS2
-#define jsimd_extbgr_ycc_convert_sse2         jSEXTBGRYCCS2
-#define jsimd_extbgrx_ycc_convert_sse2        jSEXTBGRXYCCS2
-#define jsimd_extxbgr_ycc_convert_sse2        jSEXTXBGRYCCS2
-#define jsimd_extxrgb_ycc_convert_sse2        jSEXTXRGBYCCS2
-#define jconst_rgb_gray_convert_sse2          jSCRGBGRYS2
-#define jsimd_rgb_gray_convert_sse2           jSRGBGRYS2
-#define jsimd_extrgb_gray_convert_sse2        jSEXTRGBGRYS2
-#define jsimd_extrgbx_gray_convert_sse2       jSEXTRGBXGRYS2
-#define jsimd_extbgr_gray_convert_sse2        jSEXTBGRGRYS2
-#define jsimd_extbgrx_gray_convert_sse2       jSEXTBGRXGRYS2
-#define jsimd_extxbgr_gray_convert_sse2       jSEXTXBGRGRYS2
-#define jsimd_extxrgb_gray_convert_sse2       jSEXTXRGBGRYS2
-#define jconst_ycc_rgb_convert_sse2           jSCYCCRGBS2
-#define jsimd_ycc_rgb_convert_sse2            jSYCCRGBS2
-#define jsimd_ycc_extrgb_convert_sse2         jSYCCEXTRGBS2
-#define jsimd_ycc_extrgbx_convert_sse2        jSYCCEXTRGBXS2
-#define jsimd_ycc_extbgr_convert_sse2         jSYCCEXTBGRS2
-#define jsimd_ycc_extbgrx_convert_sse2        jSYCCEXTBGRXS2
-#define jsimd_ycc_extxbgr_convert_sse2        jSYCCEXTXBGRS2
-#define jsimd_ycc_extxrgb_convert_sse2        jSYCCEXTXRGBS2
-#define jsimd_h2v2_downsample_mmx             jSDnH2V2M
-#define jsimd_h2v1_downsample_mmx             jSDnH2V1M
-#define jsimd_h2v2_downsample_sse2            jSDnH2V2S2
-#define jsimd_h2v1_downsample_sse2            jSDnH2V1S2
-#define jsimd_h2v2_upsample_mmx               jSUpH2V2M
-#define jsimd_h2v1_upsample_mmx               jSUpH2V1M
-#define jsimd_h2v2_fancy_upsample_mmx         jSFUpH2V2M
-#define jsimd_h2v1_fancy_upsample_mmx         jSFUpH2V1M
-#define jsimd_h2v2_merged_upsample_mmx        jSMUpH2V2M
-#define jsimd_h2v2_extrgb_merged_upsample_mmx jSMUpH2V2EXTRGBM
-#define jsimd_h2v2_extrgbx_merged_upsample_mmx jSMUpH2V2EXTRGBXM
-#define jsimd_h2v2_extbgr_merged_upsample_mmx jSMUpH2V2EXTBGRM
-#define jsimd_h2v2_extbgrx_merged_upsample_mmx jSMUpH2V2EXTBGRXM
-#define jsimd_h2v2_extxbgr_merged_upsample_mmx jSMUpH2V2EXTXBGRM
-#define jsimd_h2v2_extxrgb_merged_upsample_mmx jSMUpH2V2EXTXRGBM
-#define jsimd_h2v1_merged_upsample_mmx        jSMUpH2V1M
-#define jsimd_h2v1_extrgb_merged_upsample_mmx jSMUpH2V1EXTRGBM
-#define jsimd_h2v1_extrgbx_merged_upsample_mmx jSMUpH2V1EXTRGBXM
-#define jsimd_h2v1_extbgr_merged_upsample_mmx jSMUpH2V1EXTBGRM
-#define jsimd_h2v1_extbgrx_merged_upsample_mmx jSMUpH2V1EXTBGRXM
-#define jsimd_h2v1_extxbgr_merged_upsample_mmx jSMUpH2V1EXTXBGRM
-#define jsimd_h2v1_extxrgb_merged_upsample_mmx jSMUpH2V1EXTXRGBM
-#define jsimd_h2v2_upsample_sse2              jSUpH2V2S2
-#define jsimd_h2v1_upsample_sse2              jSUpH2V1S2
-#define jconst_fancy_upsample_sse2            jSCFUpS2
-#define jsimd_h2v2_fancy_upsample_sse2        jSFUpH2V2S2
-#define jsimd_h2v1_fancy_upsample_sse2        jSFUpH2V1S2
-#define jconst_merged_upsample_sse2           jSCMUpS2
-#define jsimd_h2v2_merged_upsample_sse2       jSMUpH2V2S2
-#define jsimd_h2v2_extrgb_merged_upsample_sse2 jSMUpH2V2EXTRGBS2
-#define jsimd_h2v2_extrgbx_merged_upsample_sse2 jSMUpH2V2EXTRGBXS2
-#define jsimd_h2v2_extbgr_merged_upsample_sse2 jSMUpH2V2EXTBGRS2
-#define jsimd_h2v2_extbgrx_merged_upsample_sse2 jSMUpH2V2EXTBGRXS2
-#define jsimd_h2v2_extxbgr_merged_upsample_sse2 jSMUpH2V2EXTXBGRS2
-#define jsimd_h2v2_extxrgb_merged_upsample_sse2 jSMUpH2V2EXTXRGBS2
-#define jsimd_h2v1_merged_upsample_sse2       jSMUpH2V1S2
-#define jsimd_h2v1_extrgb_merged_upsample_sse2 jSMUpH2V1EXTRGBS2
-#define jsimd_h2v1_extrgbx_merged_upsample_sse2 jSMUpH2V1EXTRGBXS2
-#define jsimd_h2v1_extbgr_merged_upsample_sse2 jSMUpH2V1EXTBGRS2
-#define jsimd_h2v1_extbgrx_merged_upsample_sse2 jSMUpH2V1EXTBGRXS2
-#define jsimd_h2v1_extxbgr_merged_upsample_sse2 jSMUpH2V1EXTXBGRS2
-#define jsimd_h2v1_extxrgb_merged_upsample_sse2 jSMUpH2V1EXTXRGBS2
-#define jsimd_convsamp_mmx                    jSConvM
-#define jsimd_convsamp_sse2                   jSConvS2
-#define jsimd_convsamp_float_3dnow            jSConvF3D
-#define jsimd_convsamp_float_sse              jSConvFS
-#define jsimd_convsamp_float_sse2             jSConvFS2
-#define jsimd_fdct_islow_mmx                  jSFDMIS
-#define jsimd_fdct_ifast_mmx                  jSFDMIF
-#define jconst_fdct_islow_sse2                jSCFDS2IS
-#define jsimd_fdct_islow_sse2                 jSFDS2IS
-#define jconst_fdct_ifast_sse2                jSCFDS2IF
-#define jsimd_fdct_ifast_sse2                 jSFDS2IF
-#define jsimd_fdct_float_3dnow                jSFD3DF
-#define jconst_fdct_float_sse                 jSCFDSF
-#define jsimd_fdct_float_sse                  jSFDSF
-#define jsimd_quantize_mmx                    jSQuantM
-#define jsimd_quantize_sse2                   jSQuantS2
-#define jsimd_quantize_float_3dnow            jSQuantF3D
-#define jsimd_quantize_float_sse              jSQuantFS
-#define jsimd_quantize_float_sse2             jSQuantFS2
-#define jsimd_idct_2x2_mmx                    jSIDM22
-#define jsimd_idct_4x4_mmx                    jSIDM44
-#define jconst_idct_red_sse2                  jSCIDS2R
-#define jsimd_idct_2x2_sse2                   jSIDS222
-#define jsimd_idct_4x4_sse2                   jSIDS244
-#define jsimd_idct_islow_mmx                  jSIDMIS
-#define jsimd_idct_ifast_mmx                  jSIDMIF
-#define jconst_idct_islow_sse2                jSCIDS2IS
-#define jsimd_idct_islow_sse2                 jSIDS2IS
-#define jconst_idct_ifast_sse2                jSCIDS2IF
-#define jsimd_idct_ifast_sse2                 jSIDS2IF
-#define jsimd_idct_float_3dnow                jSID3DF
-#define jconst_fdct_float_sse                 jSCIDSF
-#define jsimd_idct_float_sse                  jSIDSF
-#define jconst_fdct_float_sse2                jSCIDS2F
-#define jsimd_idct_float_sse2                 jSIDS2F
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
 /* SIMD Ext: retrieve SIMD/CPU information */
 EXTERN(unsigned int) jpeg_simd_cpu_support JPP((void));
 
diff --git a/simd/jsimdcfg.inc.h b/simd/jsimdcfg.inc.h
index 583b7e3..a3450aa 100644
--- a/simd/jsimdcfg.inc.h
+++ b/simd/jsimdcfg.inc.h
@@ -128,69 +128,3 @@
 %define _cpp_protection_JSIMD_3DNOW JSIMD_3DNOW
 %define _cpp_protection_JSIMD_SSE JSIMD_SSE
 %define _cpp_protection_JSIMD_SSE2 JSIMD_SSE2
-
-; Short forms of external names for systems with brain-damaged linkers.
-;
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-%define _cpp_protection_jpeg_simd_cpu_support jpeg_simd_cpu_support
-%define _cpp_protection_jsimd_rgb_ycc_convert_mmx jsimd_rgb_ycc_convert_mmx
-%define _cpp_protection_jsimd_ycc_rgb_convert_mmx jsimd_ycc_rgb_convert_mmx
-%define _cpp_protection_jconst_rgb_ycc_convert_sse2 jconst_rgb_ycc_convert_sse2
-%define _cpp_protection_jsimd_rgb_ycc_convert_sse2 jsimd_rgb_ycc_convert_sse2
-%define _cpp_protection_jconst_ycc_rgb_convert_sse2 jconst_ycc_rgb_convert_sse2
-%define _cpp_protection_jsimd_ycc_rgb_convert_sse2 jsimd_ycc_rgb_convert_sse2
-%define _cpp_protection_jsimd_h2v2_downsample_mmx jsimd_h2v2_downsample_mmx
-%define _cpp_protection_jsimd_h2v1_downsample_mmx jsimd_h2v1_downsample_mmx
-%define _cpp_protection_jsimd_h2v2_downsample_sse2 jsimd_h2v2_downsample_sse2
-%define _cpp_protection_jsimd_h2v1_downsample_sse2 jsimd_h2v1_downsample_sse2
-%define _cpp_protection_jsimd_h2v2_upsample_mmx jsimd_h2v2_upsample_mmx
-%define _cpp_protection_jsimd_h2v1_upsample_mmx jsimd_h2v1_upsample_mmx
-%define _cpp_protection_jsimd_h2v1_fancy_upsample_mmx jsimd_h2v1_fancy_upsample_mmx
-%define _cpp_protection_jsimd_h2v2_fancy_upsample_mmx jsimd_h2v2_fancy_upsample_mmx
-%define _cpp_protection_jsimd_h2v1_merged_upsample_mmx jsimd_h2v1_merged_upsample_mmx
-%define _cpp_protection_jsimd_h2v2_merged_upsample_mmx jsimd_h2v2_merged_upsample_mmx
-%define _cpp_protection_jsimd_h2v2_upsample_sse2 jsimd_h2v2_upsample_sse2
-%define _cpp_protection_jsimd_h2v1_upsample_sse2 jsimd_h2v1_upsample_sse2
-%define _cpp_protection_jconst_fancy_upsample_sse2 jconst_fancy_upsample_sse2
-%define _cpp_protection_jsimd_h2v1_fancy_upsample_sse2 jsimd_h2v1_fancy_upsample_sse2
-%define _cpp_protection_jsimd_h2v2_fancy_upsample_sse2 jsimd_h2v2_fancy_upsample_sse2
-%define _cpp_protection_jconst_merged_upsample_sse2 jconst_merged_upsample_sse2
-%define _cpp_protection_jsimd_h2v1_merged_upsample_sse2 jsimd_h2v1_merged_upsample_sse2
-%define _cpp_protection_jsimd_h2v2_merged_upsample_sse2 jsimd_h2v2_merged_upsample_sse2
-%define _cpp_protection_jsimd_convsamp_mmx jsimd_convsamp_mmx
-%define _cpp_protection_jsimd_convsamp_sse2 jsimd_convsamp_sse2
-%define _cpp_protection_jsimd_convsamp_float_3dnow jsimd_convsamp_float_3dnow
-%define _cpp_protection_jsimd_convsamp_float_sse jsimd_convsamp_float_sse
-%define _cpp_protection_jsimd_convsamp_float_sse2 jsimd_convsamp_float_sse2
-%define _cpp_protection_jsimd_fdct_islow_mmx jsimd_fdct_islow_mmx
-%define _cpp_protection_jsimd_fdct_ifast_mmx jsimd_fdct_ifast_mmx
-%define _cpp_protection_jconst_fdct_islow_sse2 jconst_fdct_islow_sse2
-%define _cpp_protection_jsimd_fdct_islow_sse2 jsimd_fdct_islow_sse2
-%define _cpp_protection_jconst_fdct_ifast_sse2 jconst_fdct_ifast_sse2
-%define _cpp_protection_jsimd_fdct_ifast_sse2 jsimd_fdct_ifast_sse2
-%define _cpp_protection_jsimd_fdct_float_3dnow jsimd_fdct_float_3dnow
-%define _cpp_protection_jconst_fdct_float_sse jconst_fdct_float_sse
-%define _cpp_protection_jsimd_fdct_float_sse jsimd_fdct_float_sse
-%define _cpp_protection_jsimd_quantize_mmx jsimd_quantize_mmx
-%define _cpp_protection_jsimd_quantize_sse2 jsimd_quantize_sse2
-%define _cpp_protection_jsimd_quantize_float_3dnow jsimd_quantize_float_3dnow
-%define _cpp_protection_jsimd_quantize_float_sse jsimd_quantize_float_sse
-%define _cpp_protection_jsimd_quantize_float_sse2 jsimd_quantize_float_sse2
-%define _cpp_protection_jsimd_idct_2x2_mmx jsimd_idct_2x2_mmx
-%define _cpp_protection_jsimd_idct_4x4_mmx jsimd_idct_4x4_mmx
-%define _cpp_protection_jconst_idct_red_sse2 jconst_idct_red_sse2
-%define _cpp_protection_jsimd_idct_2x2_sse2 jsimd_idct_2x2_sse2
-%define _cpp_protection_jsimd_idct_4x4_sse2 jsimd_idct_4x4_sse2
-%define _cpp_protection_jsimd_idct_islow_mmx jsimd_idct_islow_mmx
-%define _cpp_protection_jsimd_idct_ifast_mmx jsimd_idct_ifast_mmx
-%define _cpp_protection_jconst_idct_islow_sse2 jconst_idct_islow_sse2
-%define _cpp_protection_jsimd_idct_islow_sse2 jsimd_idct_islow_sse2
-%define _cpp_protection_jconst_idct_ifast_sse2 jconst_idct_ifast_sse2
-%define _cpp_protection_jsimd_idct_ifast_sse2 jsimd_idct_ifast_sse2
-%define _cpp_protection_jsimd_idct_float_3dnow jsimd_idct_float_3dnow
-%define _cpp_protection_jconst_idct_float_sse jconst_idct_float_sse
-%define _cpp_protection_jsimd_idct_float_sse jsimd_idct_float_sse
-%define _cpp_protection_jconst_idct_float_sse2 jconst_idct_float_sse2
-%define _cpp_protection_jsimd_idct_float_sse2 jsimd_idct_float_sse2
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
diff --git a/transupp.h b/transupp.h
index 5b0e1bb..19a7cff 100644
--- a/transupp.h
+++ b/transupp.h
@@ -77,19 +77,6 @@
  */
 
 
-/* Short forms of external names for systems with brain-damaged linkers. */
-
-#ifdef NEED_SHORT_EXTERNAL_NAMES
-#define jtransform_parse_crop_spec      jTrParCrop
-#define jtransform_request_workspace    jTrRequest
-#define jtransform_adjust_parameters    jTrAdjust
-#define jtransform_execute_transform    jTrExec
-#define jtransform_perfect_transform    jTrPerfect
-#define jcopy_markers_setup             jCMrkSetup
-#define jcopy_markers_execute           jCMrkExec
-#endif /* NEED_SHORT_EXTERNAL_NAMES */
-
-
 /*
  * Codes for supported types of image transformations.
  */
diff --git a/win/jconfig.h.in b/win/jconfig.h.in
index 516ca59..f87bef5 100644
--- a/win/jconfig.h.in
+++ b/win/jconfig.h.in
@@ -18,7 +18,6 @@
 #undef NEED_BSD_STRINGS
 #undef NEED_SYS_TYPES_H
 #undef NEED_FAR_POINTERS	/* we presume a 32-bit flat memory model */
-#undef NEED_SHORT_EXTERNAL_NAMES
 #undef INCOMPLETE_TYPES_BROKEN
 
 /* Define "boolean" as unsigned char, not int, per Windows custom */