diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-11 20:43:32 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-11 20:43:32 -0500 |
| commit | 54e11304e88406928193cec8218f1003fd92ba16 (patch) | |
| tree | 17efdeb2e5068ce5dc5514acd6a75ebe06f968aa | |
| parent | 014d595c23f33dd8e2a996cc62239fb279047f1b (diff) | |
| parent | 7f71be4c9f9a334e7bd0adc66225db4eb88c3bc4 (diff) | |
Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 build changes from Ingo Molnar:
"Two small changes"
* 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86, defconfig: Add DEVTMPFS and DEVTMPFS_MOUNT to *86*_defconfig
x86, build: move build output statistics away from stderr
| -rw-r--r-- | arch/x86/boot/Makefile | 3 | ||||
| -rw-r--r-- | arch/x86/boot/tools/build.c | 40 | ||||
| -rw-r--r-- | arch/x86/configs/i386_defconfig | 2 | ||||
| -rw-r--r-- | arch/x86/configs/x86_64_defconfig | 2 |
4 files changed, 30 insertions, 17 deletions
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile index 379814bc41e3..dce69a256896 100644 --- a/arch/x86/boot/Makefile +++ b/arch/x86/boot/Makefile | |||
| @@ -71,7 +71,8 @@ GCOV_PROFILE := n | |||
| 71 | $(obj)/bzImage: asflags-y := $(SVGA_MODE) | 71 | $(obj)/bzImage: asflags-y := $(SVGA_MODE) |
| 72 | 72 | ||
| 73 | quiet_cmd_image = BUILD $@ | 73 | quiet_cmd_image = BUILD $@ |
| 74 | cmd_image = $(obj)/tools/build $(obj)/setup.bin $(obj)/vmlinux.bin $(obj)/zoffset.h > $@ | 74 | cmd_image = $(obj)/tools/build $(obj)/setup.bin $(obj)/vmlinux.bin \ |
| 75 | $(obj)/zoffset.h $@ | ||
| 75 | 76 | ||
| 76 | $(obj)/bzImage: $(obj)/setup.bin $(obj)/vmlinux.bin $(obj)/tools/build FORCE | 77 | $(obj)/bzImage: $(obj)/setup.bin $(obj)/vmlinux.bin $(obj)/tools/build FORCE |
| 77 | $(call if_changed,image) | 78 | $(call if_changed,image) |
diff --git a/arch/x86/boot/tools/build.c b/arch/x86/boot/tools/build.c index c941d6a8887f..8e15b22391fc 100644 --- a/arch/x86/boot/tools/build.c +++ b/arch/x86/boot/tools/build.c | |||
| @@ -5,14 +5,15 @@ | |||
| 5 | */ | 5 | */ |
| 6 | 6 | ||
| 7 | /* | 7 | /* |
| 8 | * This file builds a disk-image from two different files: | 8 | * This file builds a disk-image from three different files: |
| 9 | * | 9 | * |
| 10 | * - setup: 8086 machine code, sets up system parm | 10 | * - setup: 8086 machine code, sets up system parm |
| 11 | * - system: 80386 code for actual system | 11 | * - system: 80386 code for actual system |
| 12 | * - zoffset.h: header with ZO_* defines | ||
| 12 | * | 13 | * |
| 13 | * It does some checking that all files are of the correct type, and | 14 | * It does some checking that all files are of the correct type, and writes |
| 14 | * just writes the result to stdout, removing headers and padding to | 15 | * the result to the specified destination, removing headers and padding to |
| 15 | * the right amount. It also writes some system data to stderr. | 16 | * the right amount. It also writes some system data to stdout. |
| 16 | */ | 17 | */ |
| 17 | 18 | ||
| 18 | /* | 19 | /* |
| @@ -136,7 +137,7 @@ static void die(const char * str, ...) | |||
| 136 | 137 | ||
| 137 | static void usage(void) | 138 | static void usage(void) |
| 138 | { | 139 | { |
| 139 | die("Usage: build setup system [zoffset.h] [> image]"); | 140 | die("Usage: build setup system zoffset.h image"); |
| 140 | } | 141 | } |
| 141 | 142 | ||
| 142 | #ifdef CONFIG_EFI_STUB | 143 | #ifdef CONFIG_EFI_STUB |
| @@ -265,7 +266,7 @@ int main(int argc, char ** argv) | |||
| 265 | int c; | 266 | int c; |
| 266 | u32 sys_size; | 267 | u32 sys_size; |
| 267 | struct stat sb; | 268 | struct stat sb; |
| 268 | FILE *file; | 269 | FILE *file, *dest; |
| 269 | int fd; | 270 | int fd; |
| 270 | void *kernel; | 271 | void *kernel; |
| 271 | u32 crc = 0xffffffffUL; | 272 | u32 crc = 0xffffffffUL; |
| @@ -280,10 +281,13 @@ int main(int argc, char ** argv) | |||
| 280 | startup_64 = 0x200; | 281 | startup_64 = 0x200; |
| 281 | #endif | 282 | #endif |
| 282 | 283 | ||
| 283 | if (argc == 4) | 284 | if (argc != 5) |
| 284 | parse_zoffset(argv[3]); | ||
| 285 | else if (argc != 3) | ||
| 286 | usage(); | 285 | usage(); |
| 286 | parse_zoffset(argv[3]); | ||
| 287 | |||
| 288 | dest = fopen(argv[4], "w"); | ||
| 289 | if (!dest) | ||
| 290 | die("Unable to write `%s': %m", argv[4]); | ||
| 287 | 291 | ||
| 288 | /* Copy the setup code */ | 292 | /* Copy the setup code */ |
| 289 | file = fopen(argv[1], "r"); | 293 | file = fopen(argv[1], "r"); |
| @@ -318,7 +322,7 @@ int main(int argc, char ** argv) | |||
| 318 | /* Set the default root device */ | 322 | /* Set the default root device */ |
| 319 | put_unaligned_le16(DEFAULT_ROOT_DEV, &buf[508]); | 323 | put_unaligned_le16(DEFAULT_ROOT_DEV, &buf[508]); |
| 320 | 324 | ||
| 321 | fprintf(stderr, "Setup is %d bytes (padded to %d bytes).\n", c, i); | 325 | printf("Setup is %d bytes (padded to %d bytes).\n", c, i); |
| 322 | 326 | ||
| 323 | /* Open and stat the kernel file */ | 327 | /* Open and stat the kernel file */ |
| 324 | fd = open(argv[2], O_RDONLY); | 328 | fd = open(argv[2], O_RDONLY); |
| @@ -327,7 +331,7 @@ int main(int argc, char ** argv) | |||
| 327 | if (fstat(fd, &sb)) | 331 | if (fstat(fd, &sb)) |
| 328 | die("Unable to stat `%s': %m", argv[2]); | 332 | die("Unable to stat `%s': %m", argv[2]); |
| 329 | sz = sb.st_size; | 333 | sz = sb.st_size; |
| 330 | fprintf (stderr, "System is %d kB\n", (sz+1023)/1024); | 334 | printf("System is %d kB\n", (sz+1023)/1024); |
| 331 | kernel = mmap(NULL, sz, PROT_READ, MAP_SHARED, fd, 0); | 335 | kernel = mmap(NULL, sz, PROT_READ, MAP_SHARED, fd, 0); |
| 332 | if (kernel == MAP_FAILED) | 336 | if (kernel == MAP_FAILED) |
| 333 | die("Unable to mmap '%s': %m", argv[2]); | 337 | die("Unable to mmap '%s': %m", argv[2]); |
| @@ -348,27 +352,31 @@ int main(int argc, char ** argv) | |||
| 348 | #endif | 352 | #endif |
| 349 | 353 | ||
| 350 | crc = partial_crc32(buf, i, crc); | 354 | crc = partial_crc32(buf, i, crc); |
| 351 | if (fwrite(buf, 1, i, stdout) != i) | 355 | if (fwrite(buf, 1, i, dest) != i) |
| 352 | die("Writing setup failed"); | 356 | die("Writing setup failed"); |
| 353 | 357 | ||
| 354 | /* Copy the kernel code */ | 358 | /* Copy the kernel code */ |
| 355 | crc = partial_crc32(kernel, sz, crc); | 359 | crc = partial_crc32(kernel, sz, crc); |
| 356 | if (fwrite(kernel, 1, sz, stdout) != sz) | 360 | if (fwrite(kernel, 1, sz, dest) != sz) |
| 357 | die("Writing kernel failed"); | 361 | die("Writing kernel failed"); |
| 358 | 362 | ||
| 359 | /* Add padding leaving 4 bytes for the checksum */ | 363 | /* Add padding leaving 4 bytes for the checksum */ |
| 360 | while (sz++ < (sys_size*16) - 4) { | 364 | while (sz++ < (sys_size*16) - 4) { |
| 361 | crc = partial_crc32_one('\0', crc); | 365 | crc = partial_crc32_one('\0', crc); |
| 362 | if (fwrite("\0", 1, 1, stdout) != 1) | 366 | if (fwrite("\0", 1, 1, dest) != 1) |
| 363 | die("Writing padding failed"); | 367 | die("Writing padding failed"); |
| 364 | } | 368 | } |
| 365 | 369 | ||
| 366 | /* Write the CRC */ | 370 | /* Write the CRC */ |
| 367 | fprintf(stderr, "CRC %x\n", crc); | 371 | printf("CRC %x\n", crc); |
| 368 | put_unaligned_le32(crc, buf); | 372 | put_unaligned_le32(crc, buf); |
| 369 | if (fwrite(buf, 1, 4, stdout) != 4) | 373 | if (fwrite(buf, 1, 4, dest) != 4) |
| 370 | die("Writing CRC failed"); | 374 | die("Writing CRC failed"); |
| 371 | 375 | ||
| 376 | /* Catch any delayed write failures */ | ||
| 377 | if (fclose(dest)) | ||
| 378 | die("Writing image failed"); | ||
| 379 | |||
| 372 | close(fd); | 380 | close(fd); |
| 373 | 381 | ||
| 374 | /* Everything is OK */ | 382 | /* Everything is OK */ |
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig index 94447086e551..a7fef2621cc9 100644 --- a/arch/x86/configs/i386_defconfig +++ b/arch/x86/configs/i386_defconfig | |||
| @@ -142,6 +142,8 @@ CONFIG_MAC80211=y | |||
| 142 | CONFIG_MAC80211_LEDS=y | 142 | CONFIG_MAC80211_LEDS=y |
| 143 | CONFIG_RFKILL=y | 143 | CONFIG_RFKILL=y |
| 144 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 144 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
| 145 | CONFIG_DEVTMPFS=y | ||
| 146 | CONFIG_DEVTMPFS_MOUNT=y | ||
| 145 | CONFIG_DEBUG_DEVRES=y | 147 | CONFIG_DEBUG_DEVRES=y |
| 146 | CONFIG_CONNECTOR=y | 148 | CONFIG_CONNECTOR=y |
| 147 | CONFIG_BLK_DEV_LOOP=y | 149 | CONFIG_BLK_DEV_LOOP=y |
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig index 671524d0f6c0..c1119d4c1281 100644 --- a/arch/x86/configs/x86_64_defconfig +++ b/arch/x86/configs/x86_64_defconfig | |||
| @@ -141,6 +141,8 @@ CONFIG_MAC80211=y | |||
| 141 | CONFIG_MAC80211_LEDS=y | 141 | CONFIG_MAC80211_LEDS=y |
| 142 | CONFIG_RFKILL=y | 142 | CONFIG_RFKILL=y |
| 143 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 143 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
| 144 | CONFIG_DEVTMPFS=y | ||
| 145 | CONFIG_DEVTMPFS_MOUNT=y | ||
| 144 | CONFIG_DEBUG_DEVRES=y | 146 | CONFIG_DEBUG_DEVRES=y |
| 145 | CONFIG_CONNECTOR=y | 147 | CONFIG_CONNECTOR=y |
| 146 | CONFIG_BLK_DEV_LOOP=y | 148 | CONFIG_BLK_DEV_LOOP=y |
