Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Making amd64 GENERIC a tad more "modular"



On 13.02.2011 13:10, Jean-Yves Migeon wrote:
> On 13.02.2011 06:24, Matt Thomas wrote:
>> EXEC_ELF64 is the native binary format so excluding that from
>> the kernel would be foolish.  I'd say EXEC_ELF32 should be present
>> as well (you might be booting a 64-bit kernel on a 32-bit userland).
>>
>> TMPFS needs to be there by default.
> 
> It's not really "excluded", rather provided as an external module.
> 
> Okay; should that be reflected for i386 as a consequence? Its GENERIC
> does it that way:
> 
> # For GENERIC, we build the exec formats as module(7)s by default.
> no options      EXEC_AOUT       # exec a.out binaries
> no options      EXEC_ELF32      # exec ELF binaries
> no options      EXEC_SCRIPT     # exec #! scripts
> no options      COREDUMP
> 
> Note that this suggestion was not clearly approved [1].
> 
> [1] http://mail-index.netbsd.org/port-i386/2011/02/12/msg002329.html
> 
> My goal is to have i386 and amd64 installation/ramdisk/kernels as close
> as possible (be cohesive between x86 architectures). So we can safely
> assume that turning on/off specific options in one does not have to be
> handled differently in the other, and that they behave somewhat similarly.

New day, new deal, new file: EXEC_ELF32, 64 and SCRIPT are in, as well
as TMPFS. Rest is made into module(7). This saves up to 750k for GENERIC.

Regarding modules, it only differs from i386 by EXEC_ELF32, SCRIPT and
TMPFS.

If nobody disagrees, I'll commit it soon, after some testing.

Cheers,

-- 
Jean-Yves Migeon
jeanyves.migeon%free.fr@localhost
Index: sys/arch/amd64/conf/GENERIC
===================================================================
RCS file: /cvsroot/src/sys/arch/amd64/conf/GENERIC,v
retrieving revision 1.303
diff -u -p -r1.303 GENERIC
--- sys/arch/amd64/conf/GENERIC 13 Feb 2011 04:21:23 -0000      1.303
+++ sys/arch/amd64/conf/GENERIC 14 Feb 2011 04:23:59 -0000
@@ -26,6 +26,13 @@ options      INCLUDE_CONFIG_FILE     # embed con
 
 maxusers       64              # estimated number of users
 
+# Common binary formats are statically compiled in by default.
+options        EXEC_ELF32      # exec ELF 32-bits binaries
+#no options    EXEC_ELF64      # exec ELF 64-bits binaries
+#no options    EXEC_SCRIPT     # exec #! scripts
+
+no options     COREDUMP        # coredump support, built as module(7)
+
 # delay between "rebooting ..." message and hardware reset, in milliseconds
 #options       CPURESET_DELAY=2000
 
@@ -65,6 +72,8 @@ options       SYSVMSG         # System V-like messag
 options        SYSVSEM         # System V-like semaphores
 options        SYSVSHM         # System V-like memory sharing
 #options       P1003_1B_SEMAPHORE      # p1003.1b semaphore support
+no options     AIO             # POSIX asynchronous I/O, built as a module(7)
+no options     MQUEUE          # POSIX messsage queues, built as a module(7)
 
 options        MODULAR         # new style module(7) framework
 options        USERCONF        # userconf(4) support
@@ -107,7 +116,7 @@ options     DDB_HISTORY_SIZE=512    # enable h
 #options       SYSCALL_TIMES   # per syscall times
 #options       SYSCALL_TIMES_HASCOUNTER        # use 'broken' rdtsc (soekris)
 
-# Compatibility options
+# Compatibility options, built as module(7)s by default
 options        COMPAT_15       # compatibility with NetBSD 1.5,
 options        COMPAT_16       # NetBSD 1.6,
 options        COMPAT_20       # NetBSD 2.0,
@@ -119,9 +128,8 @@ options     COMPAT_43       # and 4.3BSD
 
 options        COMPAT_OSSAUDIO
 options        COMPAT_NETBSD32
-options        COMPAT_LINUX
-options        COMPAT_LINUX32  # req. COMPAT_LINUX and COMPAT_NETBSD32
-options        EXEC_ELF32
+#options       COMPAT_LINUX
+#options       COMPAT_LINUX32  # req. COMPAT_LINUX and COMPAT_NETBSD32
 options        COMPAT_BSDPTY   # /dev/[pt]ty?? ptys.
 
 # Wedge support
@@ -131,29 +139,30 @@ options   DKWEDGE_METHOD_GPT      # Supports G
 #options       DKWEDGE_METHOD_BSDLABEL # Support disklabel entries as wedges
 #options       DKWEDGE_METHOD_MBR      # Support MBR partitions as wedges
 
-# File systems
 file-system    FFS             # UFS
-file-system    EXT2FS          # second extended file system (linux)
-file-system    LFS             # log-structured file system
-file-system    MFS             # memory file system
 file-system    NFS             # Network File System client
-file-system    NTFS            # Windows/NT file system (experimental)
-file-system    CD9660          # ISO 9660 + Rock Ridge file system
-file-system    MSDOSFS         # MS-DOS file system
-file-system    FDESC           # /dev/fd
-file-system    KERNFS          # /kern
-file-system    NULLFS          # loopback file system
-file-system    OVERLAY         # overlay file system
-file-system    PROCFS          # /proc
-file-system    PUFFS           # Userspace file systems (e.g. ntfs-3g & sshfs)
-file-system    SMBFS           # experimental - SMB/CIFS file-system
-file-system    UMAPFS          # NULLFS + uid and gid remapping
-file-system    UNION           # union file system
-file-system    CODA            # Coda File System; also needs vcoda (below)
-file-system    PTYFS           # /dev/pts/N support
-file-system    TMPFS           # Efficient memory file-system
-#file-system   UDF             # experimental - OSTA UDF CD/DVD file-system
-#file-system   HFS             # experimental - Apple HFS+ (read-only)
+file-system    TMPFS           # Efficient memory file-system
+# File systems, built as module(7)s by default
+#file-system   EXT2FS          # second extended file system (linux)
+#file-system   LFS             # log-structured file system
+#file-system   MFS             # memory file system
+#file-system   NTFS            # Windows/NT file system (experimental)
+#file-system   CD9660          # ISO 9660 + Rock Ridge file system
+#file-system   MSDOSFS         # MS-DOS file system
+#file-system   FDESC           # /dev/fd
+#file-system   KERNFS          # /kern
+#file-system   NULLFS          # loopback file system
+#file-system   OVERLAY         # overlay file system
+#file-system   PROCFS          # /proc
+#file-system   PUFFS           # Userspace file systems (e.g. ntfs-3g & sshfs)
+#file-system   SMBFS           # experimental - CIFS; also needs nsmb (below)
+#file-system   UMAPFS          # NULLFS + uid and gid remapping
+#file-system   UNION           # union file system
+#file-system   CODA            # Coda File System; also needs vcoda (below)
+#file-system   PTYFS           # /dev/ptm support
+#file-system   UDF             # experimental - OSTA UDF CD/DVD file-system
+#file-system   HFS             # experimental - Apple HFS+ (read-only)
+#file-system   NILFS           # experimental - NTT's NiLFS(2)
 
 # File system options
 options        QUOTA           # UFS quotas
@@ -1134,9 +1143,9 @@ pseudo-device     bridge                  # simple 
inter-ne
 pseudo-device  agr                     # IEEE 802.3ad link aggregation
 
 #
-# accept filters
-pseudo-device   accf_data              # "dataready" accept filter
-pseudo-device   accf_http              # "httpready" accept filter
+# accept filters, built as module(7)s by default
+#pseudo-device   accf_data             # "dataready" accept filter
+#pseudo-device   accf_http             # "httpready" accept filter
 
 # miscellaneous pseudo-devices
 pseudo-device  pty                     # pseudo-terminals
@@ -1153,7 +1162,7 @@ pseudo-device     bcsp                    # BlueCore 
Serial P
 pseudo-device  btuart                  # Bluetooth HCI UART (H4)
 
 # a pseudo device needed for Coda      # also needs CODA (above)
-pseudo-device  vcoda           4       # coda minicache <-> venus comm.
+#pseudo-device vcoda           4       # coda minicache <-> venus comm.
 
 # a pseudo device needed for SMBFS
 pseudo-device  nsmb                    # experimental - SMB requester


Home | Main Index | Thread Index | Old Index