为什么不同平台的nm输出的sorting有所不同?

我有一个精灵文件,我通过inputnm -n elf.elf来执行nm,并在两台不同的机器上得到以下输出:

Fedora的

80900114 t $LFB2.testmod1 80900114 t $LFE2.main 80900114 t $LSM0.testmod1 80900114 t $LSM1.testmod1 80900114 t $LX2.testmod1 80900114 t $Letext0.main 80900114 t $Ltext0.testmod1 80900114 T _testmod1 locale LANG=en_GB.UTF-8 LC_CTYPE="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL= 

Ubuntu

 80900114 t $Letext0.main 80900114 t $LFB2.testmod1 80900114 t $LFE2.main 80900114 t $LSM0.testmod1 80900114 t $LSM1.testmod1 80900114 t $Ltext0.testmod1 80900114 t $LX2.testmod1 80900114 T _testmod1 locale LANG=en_GB.UTF-8 LANGUAGE=en_GB:en LC_CTYPE="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL= 

我已经在两台机器上显示了一小部分的输出,我已经检查了语言环境,它们看起来是一样的,会导致这两台机器的输出顺序不同。

一个字母数字sorting也给两台机器上的顺序不同,为什么呢?

(注意:nm版本是不同的,但我不希望sorting的行为是特定于版本的。)