restore change by Denis Vlasenko: file_to_buf must vary fast, best if inline
This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)
No binary (build failed)
—
(log yok)
| @@ -130,9 +130,9 @@ static unsigned long Hertz; | |
| * | |
| */ | |
| - | static int file_to_buf(char *buf, int bufsize, char *filename, int *d) |
| + | #define file_to_buf_bufsize 80 |
| + | static inline int file_to_buf(char *buf, const char *filename, int fd) |
| { | |
| - | int fd = *d; |
| int sz; | |
| if (fd == -1) { | |
| @@ -142,13 +142,12 @@ static int file_to_buf(char *buf, int bufsize, char *filename, int *d) | |
| } else { | |
| lseek(fd, 0L, SEEK_SET); | |
| } | |
| - | sz = read(fd, buf, bufsize - 1); |
| + | sz = read(fd, buf, file_to_buf_bufsize - 1); |
| if (sz < 0) { | |
| bb_perror_msg_and_die("%s", filename); | |
| } | |
| buf[sz] = '\0'; | |
| - | *d = fd; |
| - | return sz; |
| + | return fd; |
| } | |
| static void init_Hertz_value(void) | |
| @@ -165,11 +164,11 @@ static void init_Hertz_value(void) | |
| if(smp_num_cpus<1) smp_num_cpus=1; | |
| do { | |
| - | file_to_buf(buf, sizeof(buf), "uptime", &uptime_fd); |
| + | uptime_fd = file_to_buf(buf, "uptime", uptime_fd); |
| up_1 = strtod(buf, 0); | |
| - | file_to_buf(buf, sizeof(buf), "stat", &stat_fd); |
| + | stat_fd = file_to_buf(buf, "stat", stat_fd); |
| sscanf(buf, "cpu %lu %lu %lu %lu", &user_j, &nice_j, &sys_j, &other_j); | |
| - | file_to_buf(buf, sizeof(buf), "uptime", &uptime_fd); |
| + | uptime_fd = file_to_buf(buf, "uptime", uptime_fd); |
| up_2 = strtod(buf, 0); | |
| } while((long)( (up_2-up_1)*1000.0/up_1 )); /* want under 0.1% error */ | |
| close(uptime_fd); | |